是否有内置的工具将颜色(或灰度图像)表示为灰度强度值的数组?
如果没有,假设我有一个BufferedImage img
,如何将图像表示为如下数组:
int[][] intensity = toIntensity(img);
toIntensity()方法应如何显示?
最佳答案
有一种方法可以不做您的toIntensity()事情:
public static BufferedImage convertToType(BufferedImage sourceImage, int targetType) {
BufferedImage image;
if (sourceImage.getType() == targetType) {
image = sourceImage;
}else {
image = new BufferedImage(sourceImage.getWidth(), sourceImage.getHeight(), targetType);
image.getGraphics().drawImage(sourceImage, 0, 0, null);
}
return image;
}
使用targetType调用此方法为:
BufferedImage.TYPE_BYTE_GRAY
如果需要另一种类型,则可以将其转换回原样,并保留其灰色。