我开始学习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类,因为我没有每个像素的红色,蓝色和绿色值的组件。
我做错了什么?也许我误解了概念,如果是这样,我道歉。 非常感谢你。
答案 0 :(得分:3)
灰度意味着所有三种颜色成分--R,G和B - 都是相同的。因此,使用灰度值作为颜色分量:
Color newColor = new Color(pixelValue[x][y], pixelValue[x][y], pixelValue[x][y]);
image.setRGB(x, y, newColor.getRGB());