【问题标题】:Matching Colour/Lighting between Images using a Colour Standard in GIMP使用 GIMP 中的颜色标准匹配图像之间的颜色/照明
【发布时间】:2016-06-14 18:04:43
【问题描述】:

我正在做一个项目,其中颜色是一个重要组成部分。我需要比较照片之间主体的颜色,但是照片之间的光线不是绝对一致的,所以颜色不一致和偏斜。

我在每张照片中都有一个颜色标准,我知道其中的精确颜色。我有一个单独的 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.

我需要这张照片中的标准与真实的颜色标准相匹配(由于声誉低,无法提供!),以便在照片中准确地表现主体的颜色。

感谢您提供的任何帮助 - 我真的很感激。

安德鲁

[编辑]

回应马克·塞切尔,

抱歉 - 我已经离开了一段时间,这个项目被搁置了。 我试过你的方法,但是,照片中色卡上的颜色需要匹配它们真正的 RGB 值。当我使用您的方法时,它确实摆脱了您提到的那种很棒的蓝色偏色,但它并没有让我更改照片以查看其“真实颜色”。 例如,我对照片中右上角红色瓷砖的 RGB 值进行平均,得到 R:173.7 G:64.2 B:38.0。但是,该图块的真实颜色(由色卡制造商引用)应该是 R:162 G:60 B:60。我尝试了各种方法来匹配图块,但 RGB 值的差异不同颜色的瓷砖不均匀 - 我的意思是上面提到的红色瓷砖的 R 值差异是 173.7-162=11.7,但是对于它下面的黄色瓷砖,R 值的差异(照片中和真彩色)为 44.7。似乎没有模式,所以我不知道该怎么做。 它匹配的事实是必不可少的,因为需要量化外壳的真实颜色并将其用于统计分析。如果我使用的值不能真正代表外壳,那么所做的统计工作将无关紧要,因为它不会反映外壳的真实颜色。 你明白我在说什么吗?

再次抱歉花了一段时间才回来。希望你能帮我解决这个问题!

【问题讨论】:

  • 灰卡在您的图像中是否始终处于完全相同的位置和相同的大小?

标签: image colors photoshop imagej gimp


【解决方案1】:

我通常使用 Photoshop 来校正颜色 - 在灰色中间调上使用灰色吸管。由于您不想要 Photoshop 解决方案,我会退回到 Imagemagick,它是免费的,安装在大多数 Linux 发行版上,可用于 OSX 和 Windows - 它还具有 Python、Perl、PHP、.NET、Ruby 和 Java 绑定,但我我只是在终端的命令提示符下使用它。

基本上,颜色校正的一种方法是找到一个中间色调,看看它与纯灰色的距离(即距离所有颜色分量相等),然后应用该距离作为校正。因此,在您的图像中,我可以找到中间灰色的图块并将其裁剪如下:

convert shell.png -crop 32x32+459+268 grey.png

我还可以通过平均并要求 ImageMagick 告诉我该值是什么,将其 (TM) 压缩到单个像素来查看其组成部分:

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 中调整和使用这种技术,但这不是我所熟悉的。

【讨论】:

  • 看看我原始帖子的编辑部分 - 太长了,无法作为评论包含在您的回复中。谢谢!
【解决方案2】:

Luca de Alfaro 的white balance script 或多或少可以满足您的需求。它改变了整个图像的色调,使图像中的颜色与参考完全匹配。

它也可以采用一种颜色并使其完全为灰色(具有相同的亮度),因此通常您只需采样应该是灰色/白色的东西(例如灰色图表、一张纸、洗碗机或盖子Nutella jar)并运行脚本。

脚本的源代码表明,正确操作比看起来要复杂一些。

【讨论】:

    猜你喜欢
    • 2019-11-17
    • 2022-09-24
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多