medianfilter.java

来自「jpeg图像均衡化处理 进行灰度化处理和图像均衡化 图片格式为jpg」· Java 代码 · 共 48 行

JAVA
48
字号
package v_3;

import java.awt.image.BufferedImage;
import java.awt.image.WritableRaster;

public class MedianFilter {
	/*
	 * 中值滤波(除噪)
	 */
	public void medianFilter(BufferedImage image){
		int w = image.getWidth();
		int h = image.getHeight();
		int [] G = new int [3];
		int [] F = new int [3*w*h];
		WritableRaster raster = image.getRaster();
		raster.getPixels(0, 0, w, h, F);
		for(int i = 1;i < h-1;i++){
			for(int j = 1;j < w-1;j++){
				for(int t = 0;t<3;t++){
					G[t] = F[((i+t-1)*w+j)*3];
				}
				sort(G);
				int m = G[1];
				raster.setPixel(j, i, new int []{m,m,m});
			}
		}
	}
	private void sort(int[] g) {
		// TODO Auto-generated method stub
		int temp;
		if(g[0]>g[1]){
			temp = g[0];
			g[0] = g[1];
			g[1] = temp;
		}
		if(g[1]>g[2]){
			temp = g[1];
			g[1] = g[2];
			g[2] = temp;
			if(g[0]>g[1]){
				temp = g[0];
				g[0] = g[1];
				g[1] = temp;
			}
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?