我正在开展一个颜色是重要组件的项目。我需要比较照片之间的主体颜色,但照片之间的光线并不是绝对一致的,所以颜色不一致和偏斜。
我的每张照片都有一个颜色标准,我知道它的颜色准确。我有一个单独的PNG,并希望将其用作其他照片的参考,以便颜色/灯光可以匹配。问题是我无法弄清楚如何实现这一目标 - 特别是及时。我有几百张照片需要分析,所以手动调整颜色曲线是行不通的。相反,我需要一些自动化的方式(或半自动化)来运行照片并准确地将每张照片中的颜色标准与真实的颜色标准相匹配,确保每张照片中的照明/着色始终保持一致。
我正在使用GIMP尝试解决所有这些问题,所以对它的引用比谈论Photoshop更有帮助。 我尝试过可以通过此链接下载的匹配直方图脚本 http://www.silent9.com/blog/archives/162-Gimp-Script-Histogram-Match.html Rob A不久前做过的,但它并没有像我需要的那样工作;编辑过的照片中标准的颜色不符合真正的标准。
This is an image containing the subject and the standard for scale and colour reference.
我需要此照片中的标准符合真实的颜色标准(由于声誉低而无法提供!),以便在照片中准确显示主体的颜色。
感谢您提供任何帮助 - 我真的很感激。
安德鲁
[编辑]
回应Mark Setchell,
对不起 - 我已经离开过去一段时间了,这个项目被置于次要地位。 我试过你的方法,然而,照片中色卡上的颜色需要与它们的真实RGB值相匹配。当我使用你的方法时,它确实摆脱了你所提到的那种非常棒的蓝色色彩,但它并没有让我改变照片以便以真实的颜色来观看它。#34;。 例如,我在照片中平均右上角红色瓷砖的RGB值,得到R:173.7 G:64.2 B:38.0。然而,该瓷砖的真实颜色(从色卡制造商处引用)应该是R:162 G:60 B:60。我尝试了各种方法来匹配瓷砖,但RGB的差异不同颜色的瓷砖上的值是不均匀的 - 我的意思是上面提到的红色瓷砖的R值差值是173.7-162 = 11.7,但是对于它下面的黄色瓷砖,R值的差异(在-photo和真彩色)是44.7。似乎不是一种模式,所以我不确定如何解决这个问题。 它匹配的事实是必要的,因为壳的真实颜色需要量化并用于统计分析。如果我使用的值并不真正代表shell,那么完成的统计工作将无关紧要,因为它不会反映shell的真实颜色。 你能得到我所说的吗?
很抱歉再次花一点时间才能回来。希望你能帮我解决这个问题!
答案 0 :(得分:0)
我通常使用Photoshop进行颜色校正 - 使用灰色中间调色板上的灰色吸管。由于你不想要Photoshop解决方案,我会回到Imagemagick,这是免费的,安装在大多数Linux发行版上,可用于OSX和Windows - 它还有Python,Perl,PHP,.NET,Ruby和Java绑定但我只是在终端的命令提示符处使用它。
基本上,一种颜色校正方法是找到一个中间调,看看它与纯灰色的距离(即所有颜色成分相等),然后将该距离作为校正。所以,在你的图像中,我可以找到中灰色的瓷砖并将其裁剪出来:
convert shell.png -crop 32x32+459+268 grey.png
我还可以通过平均化将其组件( TM )分解为单个像素,然后让ImageMagick告诉我该值是什么来查看其组件:
convert shell.png -crop 32x32+459+268 -resize 1x1! txt:
# ImageMagick pixel enumeration: 1,1,65535,srgba
0,0: (36681,36638,33104,65535) #8F8F81FF srgba(143,143,129,1)
所以红色和绿色高于蓝色 - 它有偏色。
要纠正它,一种方法是获得该颜色并对其进行反转(反转),然后将颜色投射的反转应用于整个图像,如颜色(校正)清洗。我会这样做:
convert shell.png \
\( +clone -crop 32x32+459+268 -resize 1x1! -negate -scale 640x479! \) \
-compose overlay -composite result.png
因此,\( ... \)
设置了一些"除了处理" ,我在其中克隆原始图像并裁剪出灰色图块。然后我通过将其调整为单个1x1像素来平均该灰度。然后我将其反转以使其成为校正并将其重新缩放至原始大小。然后通过将其合成为叠加层,将所得到的洗涤施加到原始图像上。
如果您的灰卡在图像之间移动,那么找到中灰色瓷砖还有一些工作要做,但这不应该是不可克服的。
我想你可以在GIMP中适应和使用这种技术,但这不是我熟悉的。
答案 1 :(得分:0)
Luca de Alfaro的white balance script或多或少地做了你需要的事情。它会改变整个图像的色调,使图像中的颜色与参考颜色完全匹配。
它也可以采用一种颜色并使其完全呈灰色(具有相同的亮度),因此通常只需要采样灰色/白色(例如灰色图表,一张纸,洗碗机或一个Nutella jar)并运行脚本。
脚本的源代码表明,正确执行比看起来要复杂得多。