java - 在java中显示灰度图像

标签 java image-processing grayscale

我在java中创建了浮点的二维数组,表示灰度图像,当每个像素标准化时 - 它在[0,1]之间。

如何获取二维数组并显示图像(当然是灰度)?

你!

最佳答案

最简单的方法是用它制作一个 BufferedImage。为此,您必须将值转换为颜色:

int toRGB(float value) {
    int part = Math.round(value * 255);
    return part * 0x10101;
}

首先将 0-1 范围转换为 0-255 范围,然后生成一种颜色,其中所有三个 channel (RGB - 红色、绿色和蓝色)都具有相同的值,从而形成灰色。

然后,要制作整个图像,请设置所有像素值:

BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
for (int y = 0; y < height; y++)
    for (int x = 0; x < width; x++)
        image.setRGB(x, y, toRGB(theFloats[y][x]));

获得图像后,您可以将其保存到文件中:

ImageIO.save(image, 'png', new File('some/path/file.png'));

或者,以某种方式显示它,也许使用 Swing.. 例如参见 this question .

关于java - 在java中显示灰度图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47678456/

相关文章:

java - 为什么 gridbag 约束不起作用

c++ - OpenCV,pthread - 在新线程中显示图像

java - 缓冲图像填充不起作用

javascript - 图像结果未显示在页面上

licensing - JDK 源代码许可证不一致

java - 如果存在具有相同包结构的重复类,tomcat 将如何加载该类

java - 通过序列化比较两个对象

c# - 使用 XAML 将彩色图像转换为灰度图像?

image - openCV - 在灰度图像上绘制颜色轮廓

css - 灰度背景 Css 图像