我是数字图像处理领域的初学者。现在我正在编码以从二维数组中获取图像...我已经下载了这两个代码示例...当我使用第一个时,我得到了正确的图像,但是当我使用第二个时,我正在处理与上一张相比,图像亮度更高。
请建议我这些代码之间有什么区别以及我应该参考哪些代码...我必须使用此代码来获得我的研究论文结果...
1)。
public BufferedImage getImage(BufferedImage original, float paddedArray[][], int width, int height) {
BufferedImage img = new BufferedImage(width, height, original.getType());
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
int c = Math.round(paddedArray[i][j]);
int pixel = c << 16 | c << 8 | c;
img.setRGB(i, j, pixel);
}
}
return img;
}
2)。
public BufferedImage getImages(BufferedImage original, float paddedArray[][], int width, int height) {
BufferedImage img = new BufferedImage(width, height, original.getType());
Graphics2D g = (Graphics2D) img.getGraphics();
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
int c = Math.round(paddedArray[i][j]);
if (c >= greyRange) {
c = greyRange - 1;
}
g.setColor(new Color(c, c, c));
g.fillRect(i, j, 1, 1);
}
}
return img;
}
我正在使用的这些代码我只想知道和之间的
g.setColor(new Color(c, c, c));
区别 img.setRGB(i, j, pixel);