找到相似颜色的最佳色彩空间

时间:2013-03-06 14:17:06

标签: c++ image colors rgb grayscale

如果我想找到所有相似颜色的像素,我应该使用什么颜色空间?我尝试使用GrayScale并在图像中的点处运行DFS,我想找到连接到它的类似像素,但看起来它不是正确的方法。我应该使用哪个颜色空间,这将帮助我找到从图像中的某个点开始连接的相似颜色的像素。最初我有RGB图像。

5 个答案:

答案 0 :(得分:2)

这取决于“类似”对您意味着什么。对于计算机来说类似的颜色可以被人类非常不同地感知。

OTOH,HSV模型非常适合,因为非机器人非常直观。

答案 1 :(得分:0)

我曾经使用Lab色彩空间并计算color difference(CIE76对我来说足够好)获得了良好的效果。

来自the Wikipedia link

  
    
      

与RGB和CMYK颜色模型不同,Lab颜色设计用于近似人类视觉。

    
  

因此,如果您对类似的定义是:“它们看起来相似”,那么我会选择实验室。

答案 2 :(得分:0)

Lab是一个非常好的色彩空间,但据我所知,由于它的非线性和通用性,它使用起来有点困难。

如果您对色调感兴趣并正在处理想要轻松消除阴影和反射的图像,那么HSV是一个非常好的色彩空间。

如果您对近似人类视觉感知感兴趣,YCrCb是一个非常好的(并不像Lab那样复杂)颜色空间。考虑到对于人类来说,R,G和B成分会产生更强和更弱的刺激。

答案 3 :(得分:0)

答案 4 :(得分:0)

您可以使用色彩空间HSV(色相,饱和度,值或亮度)。

将图像转换为HSV后,必须将通道饱和度和值设置为常用值,如100或任何其他强调颜色的值。通过这种转换,Hue将是唯一具有一些变化的通道,这应该足以仅显示相似的颜色而几乎没有变化。

如果要缩小间隔,可以使用所需的间隔生成通道Hue的直方图,并计算与其他直方图的差异。计算结果将是颜色之间的距离。