最“稳定”的颜色表示:RGB? HSV? CIELAB?

时间:2011-07-28 10:44:45

标签: colors opencv computer-vision

计算机科学中有几种颜色表示:标准RGB,还有HSV,HSL,CIE XYZ,YCC,CIELAB,CIELUV ......在我看来,大多数时候,这些表示试图接近人类视觉(感知上相同的颜色应具有相似的表示)

但我想知道的是,在图片方面,哪种表现最为“稳定”。我有一个物体,比方说一瓶可乐,我有几千张这瓶的照片,在不同情况下拍摄(主要区别在于照片的亮度或暗度,但有方向等等...... )

我的问题是:什么颜色表示会凭经验给我最稳定的瓶子颜色表示?标签的“红色”颜色不应有太大变化。好吧,我知道它会有所不同,但我想知道最“稳定”的表现。

我被教导过HSV在这些方面比RGB更好,但我不知道其余的。


编辑(技术细节):我特别注意瓶子。我在这一点的一千张照片中选择了相应的像素。我现在有一堆积分,取决于表现形式。我希望表示最小化此云的“大小”,例如最小化云点到其重心的平均距离的表示。

3 个答案:

答案 0 :(得分:11)

您可能需要查看http://www.cs.harvard.edu/~sjg/papers/cspace.pdf,其中提出了一个明显旨在解决此问题的新颜色空间。

答案 1 :(得分:5)

我不知道你想要的颜色空间,但我确实有一些评论:

RGB与显示器上显示颜色的方式非常匹配。它是近似人类感知方面可用的最差的色彩空间之一。

至于其他颜色空间:有些人试图确保在感知上靠近在一起的颜色也在颜色空间中靠近在一起。其他人也试图确保感知上类似的颜色差异也会在颜色空间中产生类似的差异,无论你在colourspace中的哪个位置。

第一种意思是,如果你认为蓝色A和蓝色B之间的颜色差异类似于蓝色A和蓝色C之间的颜色差异,那么在颜色空间中蓝色A和蓝色B之间的距离将是类似于蓝色A和蓝色C之间的距离,它们将在颜色空间中全部三个靠近在一起。我认为这被称为感知平滑的色彩空间。 CIE XYZ就是一个例子。

第二个意味着如果你认为蓝色A和蓝色B之间的颜色差异类似于红色A和红色B之间的颜色差异,那么在颜色空间中蓝色A和蓝色B之间的距离将类似于红色A和红色B之间的差异。这称为感知统一的色彩空间。 CIE Lab就是一个例子。


[edit 2011-07-29]至于你的问题:HSV,HSL,CIE XYZ,YCC,CIELAB,CIELUV,YUV中的任何一个都以某种方式从颜色信息中分离出来,所以那些是更好的选择。它们可以提供一些免受光照变化的影响,但是当色温急剧变化或使用彩色光时,它们无法帮助您。 XYZ和YUV在计算上比从RGB(这是大多数相机给你的)更便宜,但也不如HSV,HSL或CIELAB(后者通常被认为是最好的,但它也是一个)最困难的。)

根据您搜索的内容,您可以校准图像的color balance。例如:假设您匹配可口可乐徽标:您知道徽标中的字母始终为白色。因此,如果它们不在您的图像中,您可以使用它们所具有的颜色进行校正,从而为您提供有关其他颜色的信息。

答案 2 :(得分:2)

我们对某物颜色的看法主要取决于它的色调;像HSV这样的颜色空间,它给出一个代表色调的单一值,效果最好。

然而,眼睛是一种非凡的仪器,知道单点的颜色是不够的。如果整个场景都有黄色或蓝色色调,那么眼睛就会有所补偿,你的感觉会变得更纯净 - 橙色的可乐瓶看起来会比它更红。同样具有黑暗和亮度。如果可能,您应该在拍摄颜色样本之前尝试补偿图像。