equilibrategray.java

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

JAVA
36
字号

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

public class EquilibrateGray {
	public void Equilibrate(BufferedImage image){
		int w = image.getWidth();
		int h = image.getHeight();
		WritableRaster raster = image.getRaster();
		int [] a = new int[3];
		double [] image_HG = new double [256];
		double [] SumGray = new double [256];
		int sum = w*h;
		for(int i = 0;i < h;i++){
			for(int j = 0;j < w;j++){
				raster.getPixel(j, i, a);
				image_HG[a[0]] ++ ;
			}
		}
		SumGray[0] = image_HG[0];
		for(int i = 1;i <256;i++){
			SumGray[i]=SumGray[i-1]+image_HG[i];
		}
		for(int i = 0;i < 256;i++){
			SumGray[i] = (SumGray[i]*255)/sum;
		}
		//修改图像
		for(int i = 0;i < h;i++){
			for(int j = 0;j < w;j++){
				raster.getPixel(j, i, a);
				raster.setPixel(j, i, new double []{SumGray[a[0]],SumGray[a[0]],SumGray[a[0]]});
			}
		}
	}
}

⌨️ 快捷键说明

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