background image

80.

    

public

 BufferedImage getMedian() {  

81.

        PixelGrabber pg = 

new

 PixelGrabber(image.getSource(), 

0

0

, iw, ih,  

82.

                                           pixels,  

83.

                                           

0

, iw);  

84.

        

try

 {  

85.

            pg.grabPixels();  

86.

        } 

catch

 (InterruptedException e) {  

87.

            e.printStackTrace();  

88.

        }  

89.

        

// 对图像进行中值滤波,Alpha 值保持不变

  

90.

        ColorModel cm = ColorModel.getRGBdefault();  

91.

        

for

 (

int

 i = 

1

; i < ih - 

1

; i++) {  

92.

            

for

 (

int

 j = 

1

; j < iw - 

1

; j++) {  

93.

                

int

 red, green, blue;  

94.

                

int

 alpha = cm.getAlpha(pixels[i * iw + j]);  

95.

  

96.

                

// int red2 = cm.getRed(pixels[(i - 1) * iw + j]);

  

97.

                

int

 red4 = cm.getRed(pixels[i * iw + j - 

1

]);  

98.

                

int

 red5 = cm.getRed(pixels[i * iw + j]);  

99.

                

int

 red6 = cm.getRed(pixels[i * iw + j + 

1

]);  

100.

                

// int red8 = cm.getRed(pixels[(i + 1) * iw + j]);

  

101.

  

102.

                

// 水平方向进行中值滤波

  

103.

                

if

 (red4 >= red5) {  

104.

                    

if

 (red5 >= red6) {  

105.

                        red = red5;  

106.

                    } 

else

 {  

107.

                        

if

 (red4 >= red6) {  

108.

                            red = red6;  

109.

                        } 

else

 {  

110.

                            red = red4;  

111.

                        }  

112.

                    }  

113.

                } 

else

 {  

114.

                    

if

 (red4 > red6) {  

115.

                        red = red4;  

116.

                    } 

else

 {  

117.

                        

if

 (red5 > red6) {  

118.

                            red = red6;  

119.

                        } 

else

 {  

120.

                            red = red5;  

121.

                        }  

122.

                    }  

123.

                }