Java에서 그레이 스케일 이미지를 히스토그램 평등화하려고합니다. 설명은 다음과 같습니다. 룩업 테이블의 인덱스로 각 픽셀의 RGB의 한 밴드를 사용하여 이미지를 반복하여 이미지의 새 픽셀 값을 결정합니다. 각 픽셀의 RGB를 새 픽셀 값에 해당하는 RGB로 설정합니다.히스토그램 룩업 테이블을 사용하는 이미지의 균등화
나는 파란 착색 된 이미지를 얻을이 구현 :
[제거]
(예상 결과)
[제거] 여기
내가 지금까지 가지고있는 코드입니다 :private void histogramEqualize(BufferedImage im, int[] lut) {
for (int x = 0; x < im.getWidth(); x++) {
for (int y = 0; y < im.getHeight(); y++) {
Color c = new Color(im.getRGB(x, y));
Color eq = new Color(lut[c.getRed()], c.getGreen(), c.getBlue());
im1.setRGB(x, y, eq.getRGB());
}
}
}
public int[] getLookupTable(int[] h, int n) {
// h: Histogram for im1 in either the red band or luminance.
lut = new int[256];
double sf = 255/n;
int sumH = 0;
int sk = 0;
for(int i=0; i<h.length; i++) {
sumH += h[i];
sk = (int)(sf*sumH);
lut[i] = sk;
}
return lut;
}
Color eq = new Color(lut[c.getRed()], c.getGreen(), c.getBlue());
to Color eq = new Color(lut[c.getRed()], lut[c.getGreen()], lut[c.getBlue()]);
하지만 검은 색 이미지가 나타납니다.
감사합니다. 알았다. – user7828128