java - 在java中仅使用灰度值数组绘制图像

标签 java rgb pixel javax.imageio

我开始学习Java中的图像处理,这是我的问题:我有一个灰度图像的值数组(我假设像素值),每个(x,y)位置一个。图像尺寸为 96x96。 这些值的示例是:

238 
236 
237
238
240
240 
239 
241
241
243
240
239 
231 
212
190
173 
148
122
104

我的问题是,如何仅使用这些像素值来绘制该图像?我之所以问这个问题,是因为通常我有可用的原始图像,并且我提取每个像素的红色、绿色和蓝色分量值。但在这种情况下,如果我想做这样的事情:

// after for loop in which I do  
//Color newColor = new Color(red,green,blue);
//image.setRGB(x,y,newColor.getRGB());

JFrame frame = new JFrame();
JLabel lblimage = new JLabel(new ImageIcon(image));
JPanel mainPanel = new JPanel(new BorderLayout());
mainPanel.add(lblimage);

// add more components here
frame.add(mainPanel);
frame.setVisible(true);

我无法创建 Color 类,因为我没有每个像素的红色、蓝色和绿色值的分量。

我做错了什么?也许我误解了概念,如果是这样,我深表歉意。 非常感谢。

最佳答案

灰度意味着所有三个颜色分量 - R、G 和 B - 都是相同的。因此,使用灰度值作为颜色分量:

Color newColor = new Color(pixelValue[x][y], pixelValue[x][y], pixelValue[x][y]);
image.setRGB(x, y, newColor.getRGB());

关于java - 在java中仅使用灰度值数组绘制图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38104961/

相关文章:

rgb - Photoshop的CMYK转RGB公式

Java addShutdownHook 方法

ios - 从 UIColor 中提取 RGB 值

java - 访问服务器端口@Value ("${local.server.port}")不起作用

c++ - OpenCV cvtColor 也修改原始图像

algorithm - 如何将一组线像素化为矩阵

Linux在命令行中逐像素创建图像

image - 如何访问 OpenCV 中的像素?

JavaBuilder 处理 CoreException

java - 如何使用 md5 通过 Camel 路由到 S3 检查文件完整性?