📄 equilibrategray.java
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -