在RGB颜色空间中从另一种颜色中减去一种颜色

时间:2014-01-05 16:14:06

标签: image-processing rgb

我想从另一个中减去颜色。例如,我有两个图像100X100像素,一个有颜色R:236 G:226 B:43,另一个R:63 G:85 B:235。我想从R:63 G:85 B:235切割颜色R:236 G:226 B:43。但我知道它不能像数学方法那样减去,层R:236-63,G:226-85,B:43-235,因为我发现小于0且大于255的颜色无法定义

我在RYB色彩空间中找到了另一个色彩空间。但我不知道它是如何工作的。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您实际上无法减去颜色。但你肯定能发现他们的不同之处。无论如何,我想这就是你所需要的 以下是一些想法和评论:

  1. 将图像转换为 HSV色彩空间,将RGB值转换为 色调,饱和度和亮度(值)。
  2. 你的所有图像应该是黄色(接近60度) Hue circle)所以他们都应该拥有相同的Hue 细微差别。
  3. 通常,如果所有图像都是在恒定的光照条件下拍摄的 它们应具有相同的值(亮度)。
  4. 饱和度,对应于颜色为白色的混合物, 通常表示您感知颜色的强烈程度。这个 对于你的所有图像,它通常具有大约相同的值 恒定的照明条件。
  5. 根据您的第一个描述,应在Hue频道中检测到主要差异

    关于HSV的一个好处是 H(色调)由逆时针圆圈表示,颜色只是这个圆圈上的位置,因此正值和负值都有意义(搜索谷歌的描述HSV色彩空间,以了解它的外观和工作方式。)

    你可以通过减法检测差异,这会导致你得到一个正数值为负数,或者通过采用减法的绝对值,这将只是给出两个Hue值差异的度量(但没有关于差异方向的任何信息)。如果你需要差异的方向,你应该坚持一个简单的减法。

    例如:

      

    Hue_1 - Hue_2 = Hue_3(通常是您问题的一个小值)
      如果Hue_3> 0这意味着Hue_1有点朝向绿色   Hue_3< 0这意味着Hue_1有点朝向红色

    当然,您可能还需要查看其他通道S和V的差异,看看颜色是否更饱和或更亮,但我不能确定您需要这样做,因为我们没有&#39在这里看到任何图像。

    当然,你可以做更复杂的事情......比如在检测到的色调上应用聚类或分类技术,并根据你的问题需要将它们分类到类......