2
지나치게 미리 정의 된 메서드없이 컬러 이미지를 그레이 스케일로 변환하려고합니다.컬러 이미지를 Java에서 그레이 스케일 이미지로 변환
컬러 이미지를 읽는 코드는 여기에
주요 방법 :
BufferedImage img = null;
try {
img = ImageIO.read(new File(IMG));
int[][] pixelData = new int[img.getHeight() * img.getWidth()][3];
int[] rgb;
int counter = 0;
for (int i = 0; i < img.getWidth(); i++) {
for (int j = 0; j < img.getHeight(); j++) {
rgb = getPixelData(img, i, j);
for (int k = 0; k < rgb.length; k++) {
pixelData[counter][k] = rgb[k];
}
counter++;
}
}
} catch (IOException e) {
e.printStackTrace();
}
또 다른 방법 : 나는 그레이 스케일로 출력을 변환해야
private static int[] getPixelData(BufferedImage img, int x, int y) {
int argb = img.getRGB(x, y);
int rgb[] = new int[] {
(argb >> 16) & 0xff, //red
(argb >> 8) & 0xff, //green
(argb ) & 0xff //blue
};
System.out.println("rgb: " + rgb[0] + " " + rgb[1] + " " + rgb[2]);
return rgb;
}
... 여기에 출력의 일부입니다.
rgb: 255 255 255
rgb: 255 255 255
rgb: 255 255 255
rgb: 255 255 255
rgb: 255 255 255
rgb: 255 255 255
모든 픽셀을 RGB로 확인하고 회색 음영으로 변환해야합니다.