如何比较两种颜色?

3

问题:如何比较两个颜色,可能是用两台不同的相机拍摄的?

场景:

我有一张参考图像,其中有不同颜色的正方形。它可能是用iPhone相机拍摄的,也可能是从PDF文件复制的。下面是从PDF复制的样本参考图像:

enter image description here

现在其他人使用他们自己的相机拍摄类似图像(彩色正方形)。下面是一个示例测试图像:

enter image description here

对于测试图像中的每个正方形,我需要检查哪个是参考图像中最接近的正方形。

我的理解:

在SOF中有几个与此相关的类似问题。以下是我得到的要点:

1- 找到正方形的RGB值,找到所有正方形之间的欧几里德距离,并选择距离最小的那一个。

但是有些人说RGB不是很好的颜色表示方法。

2- 使用HSV或Lab进行上述方法。

3- DeltaE方法(我对此不太了解)

在我的问题中,图像是用两台不同的相机拍摄的。那么上述方法适用于这种类型的问题吗?

如果不是,有人可以分享一种比较来自两个不同相机拍摄的颜色的好方法吗?


可能会有用:http://stackoverflow.com/questions/10640995/color-detection-algorithm - user1326628
我已经尝试过了。它是关于颜色提取,而不是颜色比较。我需要比较两种颜色的相似程度。 - Abid Rahman K
这与主题完全不相关。这需要相当多的色彩科学知识才能做得好。 - user85109
1
我不明白为什么它被踩了,也不知道为什么不是相关话题。请查看这个类似的问题:https://dev59.com/tmox5IYBdhLWcg3wtmg1。我的问题与那个不同,因为这些图像是用两个不同的相机拍摄的。在检查了许多类似的问题后,我才提出了这个问题。如果人们认为这是相关话题,我相信他们也应该推荐适合提问的地方。 - Abid Rahman K
@AbidRahmanK 这个问题总体上是相关的,但其中的内容需要进行调整。我会先展示一些尝试的结果,以及它如何无法产生您想要的结果。目前为止,它包含了几个其他问题,请将您的问题限制在其中一个问题上。尽管如此,我不会使用这里发布的任何答案,也不会使用您自己问题中包含的任何提及(欧几里得距离、白平衡等)。方法需要不同的方式才能更可靠地工作,可以考虑颜色直方图适应。 - mmgp
另外,校准至已知模式。 - mmgp
2个回答

1

RGB欧几里得距离不适用于匹配不同颜色。想象一下,你从黑色(0,0,0)开始,那么纯蓝、纯红和纯绿都是相等的,因此在你的方案中它们是相同的。

转换为HSV/HSL类型的颜色空间可以帮助你将整体亮度与颜色分开,并识别具有不同饱和度的相似颜色。

如果您需要这个结果准确,您可能还需要找到图像中的白色区域,并使用它来校正背景光的颜色。


嗨,我应该在两张图片中找到白色区域吗?另外,在找到白色区域后我该怎么做?您能扩展一下您回答的最后一部分吗? - Abid Rahman K
1
你可以寻找相同颜色的最大像素,并假设它们是白色背景,然后将其他颜色缩放到该白色。尝试一些实验。 - Martin Beckett

1

我会使用一个被设计成(大致)感知均匀的色彩空间。从我在维基百科上的记忆导向短搜索中,我个人会选择CIE L*u*v*并使用欧几里得范数。这非常类似于最简单的 \delta E,它使用L*a*b*代替L*u*v*来完成相同的工作。我相信任何更复杂的\delta E都应该表现出色。

正如马丁所指出的那样,如果相机没有平衡白平衡,那么白平衡也可能起到一定的作用...


请问您能否添加更多关于白平衡的细节? - Abid Rahman K

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接