在 java 中仅使用灰度值数组绘制图像
Draw image with only grayscale value array in java
我开始在 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);
我无法创建颜色 class,因为我没有每个像素的红色、蓝色和绿色值的组件。
我做错了什么?也许我误解了概念,如果是这样我道歉。
非常感谢。
灰度意味着所有三种颜色分量 - R、G 和 B - 都相同。因此,使用灰度值作为颜色分量:
Color newColor = new Color(pixelValue[x][y], pixelValue[x][y], pixelValue[x][y]);
image.setRGB(x, y, newColor.getRGB());
我开始在 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);
我无法创建颜色 class,因为我没有每个像素的红色、蓝色和绿色值的组件。
我做错了什么?也许我误解了概念,如果是这样我道歉。 非常感谢。
灰度意味着所有三种颜色分量 - R、G 和 B - 都相同。因此,使用灰度值作为颜色分量:
Color newColor = new Color(pixelValue[x][y], pixelValue[x][y], pixelValue[x][y]);
image.setRGB(x, y, newColor.getRGB());