Colors 如何选择RGB颜色过滤点的范围?

Colors 如何选择RGB颜色过滤点的范围?,colors,computer-vision,Colors,Computer Vision,我有一张图像,我正在通过RGB(数据采样)选择颜色。我从图像中具有“相同”颜色的特定区域中选择N点。我所说的“相同”是指,图像的这一部分属于一个对象(比如说一个黄色对象)。RGB案例中的每个拾取点都有三个值[R,G,B]。例如:[120150225]。每个字段的最大值和最小值分别为255和0。 假设我从图像中对象的区域中拾取了N个点。这些点显然具有不同的RGB值,但来自同一系列(特定颜色的渐变) 问题: 我想为每个RGB字段找到一个范围,当我在图像上应用颜色过滤器时,与特定对象相关的像素将保留(

我有一张图像,我正在通过RGB(数据采样)选择颜色。我从图像中具有“相同”颜色的特定区域中选择N点。我所说的“相同”是指,图像的这一部分属于一个对象(比如说一个黄色对象)。RGB案例中的每个拾取点都有三个值[R,G,B]。例如:[120150225]。每个字段的最大值和最小值分别为2550。 假设我从图像中对象的区域中拾取了N个点。这些点显然具有不同的RGB值,但来自同一系列(特定颜色的渐变)

问题: 我想为每个RGB字段找到一个范围,当我在图像上应用颜色过滤器时,与特定对象相关的像素将保留(被视为内联线)。从采样点中找出最大值和最小值并将它们视为滤波范围是正确的吗?例如,如果字段R的最大值和最小值分别为120和170,则可以将其用作应保持的范围

在我看来,这个想法是不正确的。因为当选择一组采样数据的最大值和最小值时,某些点将超出该范围,并且对象上的某些点也将不适合该范围

包含更多点作为内联线的更好解决方案是什么


如果有人需要查看收集的数据样本,请告诉我。

我不确定我是否完全理解您的要求,但我认为在RGB中进行过滤不是一种好办法。如果要比较类似颜色的像素,应使用不同于RGB的颜色空间。RGB很适合在屏幕上表示颜色,但实际上您需要查看色调、饱和度和强度(亮度或亮度)来分析颜色中的可见相似性

例如,您应该首先将像素转换为HSI或HSL颜色空间,然后比较获得的不同参数。此时,比较色调范围内的结果色调、饱和度范围内的饱和度等更为自然


有关如何在RGB之间进行转换的更多信息。

这里发生的事情是,您隐式地尝试重新创建颜色索引或直方图反投影。您称之为颜色过滤器,但最好关注概率,而不是颜色和颜色空间。颜色当然不是超可靠的,并且随着照明的变化而变化(尽管在非彩色照明条件下,色调往往保持不变),这就是为什么一些颜色空间比其他颜色空间更好的原因。您可以单独处理这个问题,但您似乎更感兴趣的是计算“过滤操作”的原理,该操作将从背景分割前景对象。希望如此

简而言之,直方图反投影的工作原理是首先在对象区域内为R、G、B创建直方图,然后按照以下方式将它们反投影到图像中。对于图像中的每个像素,在直方图中找到其存储单元,在给定存储单元总数的情况下计算其相对权重(概率),并将该概率放入图像中。这样,每个像素都有可能属于该对象。若你们也想对背景建模,你们可以通过除以背景的概率来改进它

结果将是混乱的,但有点像一个对象段加上一些背景噪声。必须对其进行清洁,然后使用单独的方法(如连接组件、抓取切割、形态学操作、模糊等)将其重新连接到对象中