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

23
在计算机科学中有几种颜色表示方式:标准 RGB,以及 HSV、HSL、CIE XYZ、YCC、CIELAB、CIELUV 等。它们似乎大多数时候都试图近似人类视觉(颜色在感知上相同的应该具有类似的表示)。
但是我想知道的是,当涉及到图片时,哪种表示方式最“稳定”。比如说,我有一个物品,比如一瓶可乐,并且我有成千上万张这个物品的图片,拍摄在非常不同的情况下(主要区别在于图片的亮度和暗度,但也有取向等因素)。
我的问题是:在经验上,哪种颜色表示方式可以给我提供最稳定的物品颜色表示?标签上的“红”色应该变化不太明显。我知道它会变化,但我想知道最稳定的表示方式。
我曾被教导使用 HSV 比 RGB 更适合这些事情,但其他表示方式我没有头绪。
编辑(技术细节):我获取瓶子的一个特定点。我在一千张图片中挑选相应像素点。现在我有了一个依赖于表示的点云。我希望选择最小化此点云“大小”的表示方式,例如最小化点到其重心的平均距离。

2
任何物体的颜色都很大程度上取决于光照 - 不仅仅是光温度,还包括其光谱。在阳光下可能具有相同感知颜色的物体(因为它们反射出不同的光谱,但对人眼来说看起来相同)在灯光下看起来可能并不相同,而LED灯则完全不同。您需要考虑这种差异吗? - Christopher Creutzig
据我所知,目前没有一种色彩空间可以针对不同光照条件下的“相同”颜色进行优化。我甚至不确定这是否可能实现。 - jilles de wit
@Jilles:我相信没有任何颜色空间可以做到这一点。我想知道哪一个是最不糟糕的。例如,在HSV表示中,V(值)被认为是告诉你像素有多亮或暗的。如果你将所有图片标准化,使它们具有相同的平均亮度(和方差),也许它就成为了一个“好”的颜色空间? - B. Decoster
3个回答

12

这个颜色空间的哪个通道应该用于光照不变梯度测量?你们有使用过它吗?欢迎提供意见。 - AruniRC
假设我们在不受照明影响的新颜色空间中通过预乘B、分量自然对数和A的预乘来进行计算,那么将颜色恢复为RGB的方法可能是反转换(分量逆A的预乘,exp(),再与B的逆预乘)。@AruniRC 我认为这不是它的工作方式,光照不变性会使得三个通道上的梯度更具有光照不变性,但由于光照变化,所有三个通道仍然可以发生变化。 - Steven Lu

6
我不知道有没有符合你要求的颜色空间,但我有一些评论:
RGB 非常接近于我们在监视器上看到的颜色显示方式。它是最糟糕的颜色空间之一,无法近似人类感知。
至于其他颜色空间:有些尝试确保在感知上相近的颜色也在颜色空间中彼此靠近。其他颜色空间还尝试确保在颜色空间中产生类似的颜色差异时,无论在颜色空间的哪个位置,它们在感知上都是相似的。
第一个意味着如果你认为蓝色 A 和蓝色 B 之间的颜色差异与蓝色 A 和蓝色 C 之间的颜色差异相似,那么在颜色空间中,蓝色 A 和蓝色 B 之间的距离将类似于蓝色 A 和蓝色 C 之间的距离,它们三者都会在颜色空间中彼此靠近。我认为这被称为感知平滑颜色空间。CIE XYZ 是其一个例子。
第二个意思是,如果你认为蓝色A和蓝色B之间的颜色差异类似于红色A和红色B之间的颜色差异,则在颜色空间中,蓝色A和蓝色B之间的距离将类似于红色A和红色B之间的差异。这被称为感知均匀的颜色空间。CIE Lab就是其中的一个例子。
[编辑于2011-07-29] 关于你的问题:HSV、HSL、CIE XYZ、YCC、CIELAB、CIELUV和YUV中的任何一种都以某种方式将照明与颜色信息分离,因此这些是更好的选择。它们提供了一定程度的免疫力,但当颜色温度发生 drastical 变化或使用彩色光时,它们将无法帮助您。从 RGB(这是大多数相机提供的)到 XYZ 和 YUV 的计算成本较低,但也不如 HSV、HSL 或 CIELAB 好(后者通常被认为是最好的之一,但也是最困难的之一)。
根据您要搜索的内容,您可以校准图像的 色彩平衡。例如:假设您正在匹配可口可乐标志:您知道标志中的字母始终是白色的。因此,如果它们不在您的图像中,您可以使用它们所具有的颜色来进行校正,这会给您关于其他颜色的信息。

非常感谢您详细的解释!您帮助我更好地理解了其他颜色表示方式产生的原因。并且,在某种程度上,您解释了(如果我错了,请纠正)如果我向人类展示某种颜色,并要求他在10个预定义颜色的调色板中指出最接近的颜色,如果颜色表示良好,他会指出最接近值的颜色。但是我想知道,如果我拍摄了一千张相同颜色的照片,相机是否也会告诉我像素具有接近的表示?因为我们的大脑可以做出不可思议的事情。 - B. Decoster

2
我们对某物颜色的感知主要取决于其色调;像HSV这样提供代表色调的单一值的颜色空间效果最佳。
然而,眼睛是一个非常出色的仪器,仅知道单个点的颜色是不够的。如果整个场景有黄色或蓝色色调,眼睛会进行补偿,你的感知将是更纯净的颜色 - 橙色可乐瓶看起来比实际更红。同样,对于暗度和亮度也是如此。如果可能的话,在取色样本之前应尽量对图像进行补偿。

真的,真的,真的!我只考虑了将亮度归一化(使我的图片具有相同的均值和方差)。感谢您的回答!(尽管它并没有完全回答我的问题^^) - B. Decoster

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