是否有内置的工具将颜色(或灰度图像)表示为灰度强度值的数组?

如果没有,假设我有一个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
如果需要另一种类型,则可以将其转换回原样,并保留其灰色。

09-30 21:17