【发布时间】:2013-11-14 09:23:53
【问题描述】:
我有一个使用getRed()、getGreen() 和getBlue() 的程序运行良好。我想看看我是否能找到其他一些也为灰度图像着色的算法,无论它或多或少准确都没有关系,这只是我正在研究比较方法及其准确性的东西。
我决定使用类似的方法,只需将getRed() 用于图像 1、2 和 3(而不是仅 1)并将每种颜色除以 3,理论上可以实现 3 中的平均红色、绿色和蓝色值图像并从中创建新图像。
生成的图像很奇怪;颜色不是统一的,即每个像素的随机颜色,你几乎无法辨认出图像的任何特征,因为它是如此颗粒状,我想这是描述它的最佳方式。它看起来像一张普通的照片,但到处都有色彩噪点。只是想知道是否有人知道为什么会这样?这不是我的意图,我期待更正常,与原始方法非常相似,但每种方法可能会更柔和/更亮。
有人知道为什么会这样吗?这似乎不对。除了标准的getRGB() 方式之外,我还可以使用其他方法为图像着色吗?
BufferedImage combinedImage = new BufferedImage(image1.getWidth(), image1.getHeight(), image1.getType());
for(int x = 0; x < combinedImage.getWidth(); x++)
for(int y = 0; y < combinedImage.getHeight(); y++)
combinedImage.setRGB(x, y, new Color(
new Color((image1.getRGB(x, y) + image2.getRGB(x, y) + image3.getRGB(x, y))/3).getRed(),
new Color((image1.getRGB(x, y) + image2.getRGB(x, y) + image3.getRGB(x, y))/3).getGreen(),
new Color((image1.getRGB(x, y) + image2.getRGB(x, y) + image3.getRGB(x, y))/3).getBlue()).
getRGB());
提前致谢
【问题讨论】:
标签: java image algorithm image-processing colors