我有一张图片,我正在通过 RGB (数据采样)选择颜色。我从图像中具有“相同”颜色的特定区域中选择 N 点。我的意思是“相同”,图像的那一部分属于一个物体,(比如一个黄色的物体)。 RGB 情况下的每个拾取点都有三个值 [R,G,B] 。例如:[120,150,225]。并且每个字段的最大值和最小值分别为 255 和 0 。 假设我从图像中对象的区域中选取了N个点。这些点显然具有不同的 RGB 值,但来自同一系列(特定颜色的渐变)。
问题: 我想找到每个 RGB 字段的范围,当我在图像上应用滤色器时,与该特定对象相关的像素仍然存在(被视为内点)。从采样点找到最大值和最小值并将它们视为滤波器范围是否正确?例如,如果字段 R 的最大值和最小值分别为120,170,则可以将其用作应保留的范围。
在我看来,这个想法并不属实。因为当选择一组采样数据的最大值和最小值时,某些点将超出该范围,并且对象上的某些点也不适合此范围。
将更多点作为内点包含更好的解决方案是什么?
如果有人需要查看收集的数据样本,请告知我们。
答案 0 :(得分:1)
我不确定我是否完全掌握了你的要求,但在我看来,过滤RGB并不是一种可行的方法。如果要比较相似颜色的像素,则应使用与RGB不同的颜色空间。 RGB非常适合在屏幕上表示颜色,但实际上您需要查看色调,饱和度和亮度(亮度或亮度)来分析颜色中的可见相似性。
例如,您应首先将像素转换为HSI或HSL颜色空间,然后比较您获得的不同参数。此时,比较色调范围中的结果色调,饱和度范围内的饱和度等等是更自然的。
Go here了解有关如何与RGB进行转换的更多信息。
答案 1 :(得分:1)
这里发生的是你暗中尝试重新设计颜色索引或直方图反投影。你称之为彩色滤镜,但最好关注概率而不是颜色和色彩空间。颜色当然不是非常可靠并且随着光线而变化(尽管在非彩色照明下色调趋于保持不变),这就是为什么某些色彩空间比其他色彩空间更好的原因。您可以单独处理此问题,但似乎您对计算"过滤操作"的原则更感兴趣。这将从背景分割前景对象。希望。
简而言之,直方图反投影首先在对象区域内为R,G,B创建直方图,然后按照以下方式将它们反投影到图像中。对于图像中的每个像素,在直方图中找到其bin,计算其给定的总和的相对权重(概率)并将该概率放入图像中。以这种方式,每个像素将具有它属于对象的概率。如果你想要模拟背景,你可以通过除以背景概率来改进它。
结果将是混乱的,但有点类似于对象段加上一些背景噪音。必须清理它,然后使用单独的方法重新连接到对象,例如连接组件,抓取切割,形态操作,模糊等。