Image “占主导地位”;“颜色”;影像

Image “占主导地位”;“颜色”;影像,image,algorithm,image-processing,computer-vision,processing,Image,Algorithm,Image Processing,Computer Vision,Processing,我有以下图像: 我想做的是根据它们的主色来“标识”单个条带。最好的方法是什么 我所做的是使用图像的值(HSV),并对该值的出现进行分布。问题是,对于strip0值[27=32191,28=5433,其他=8]strip1值[26=7107,27=23111,其他=22]。我无法得到确切的区分 该项目的主要目标是将实际的黄色纸张与条纹进行比较,并确定哪个条纹最相似。您可以将图像分割为多个部分,然后将每个部分调整为一个像素。这是一个使用整个图像的示例 $ convert Y82IirS.jpg -

我有以下图像:

我想做的是根据它们的主色来“标识”单个条带。最好的方法是什么

我所做的是使用图像的值(HSV),并对该值的出现进行分布。问题是,对于strip0值
[27=32191,28=5433,其他=8]
strip1值
[26=7107,27=23111,其他=22]
。我无法得到确切的区分


该项目的主要目标是将实际的黄色纸张与条纹进行比较,并确定哪个条纹最相似。

您可以将图像分割为多个部分,然后将每个部分调整为一个像素。这是一个使用整个图像的示例

$ convert Y82IirS.jpg -resize 1x1 txt:
# ImageMagick pixel enumeration: 1,1,255,srgb
0,0: (220,176, 44)  #DCB02C  srgb(220,176,44)

您可以扫描所有颜色,并使用哈希表跟踪每种颜色的像素数

记下这些数字,记住它们对应的颜色,按降序排列

查看已排序的数字列表,找出每对连续数字之间的差异。跟踪导致每个差异的两个数字列表中的索引。对差异列表进行排序

查看差异列表中的最大值。现在,两组像素之间的衰减最大。去看看哪个更大。所有像素数大于等于此数的东西都是主色。下面的一切都是次主色调。现在你知道你有多少主色调,它们是什么

从那以后,做你想做的事情应该很容易

唯一一次这种方法不起作用的是,如果一些噪声与条带颜色相同,以至于损坏了数据

在本例中,您将使用另一种方法,您也可以在第一种情况中使用这种方法—查看运行。浏览像素,每次你发现一种新的颜色,看看下面有多少像素是相同的颜色

使用前面描述的方法将颜色分为显性和非显性,以获得相同的结果


在这两种情况下,如果您知道图片是垂直条带,您可以限制查看的颜色水平线的数量以加快速度。

首先,由于您知道参考图像中每个条带的边界,因此这里唯一可能的问题是您的参考图像有噪声。一种相对过度的处理方法是对每个条带中的颜色进行聚类,并将聚类的质心作为条带的代表颜色。为了在这里得到更有意义的响应,请考虑CIELAB颜色空间用于此步骤。这样做,并将结果转换回RGB,对于第一个条带,我得到RGB三元组
(0.949375,0.879872,0.147898)
,对于第二个条带
(0.945324,0.857322,0.129756)
(范围[0,1]中的每个通道)


当您获得一个新图像时,您将执行相同的操作。但是这里有很多问题。例如,您如何处理此输入图像中的白平衡?假设你没有这样的问题,那么现在只需要找到与你刚才通过同样的过程找到的颜色最接近的颜色。为了找到最接近的颜色,你也必须使用一个有意义的颜色空间,并且再次推荐CIELAB,因为它定义了完善的Delta-E函数。有关某些此类度量,请参阅,最简单的是CIELAB中的欧几里德距离。

校准设备。如果不校准设备,测试样本和参考之间将存在任意错误。照明是设备的一部分

使用边缘检测和您对参考条几何图形的了解(条宽度相等)来确定采样区域。对于每个采样区域,提取一个内部面片

对于测试条,计算一个图像,其中每个像素是采样窗口内的最大差值(例如5x5)。这将使您能够识别与外部区域(即纸张)不同的相对同质区域。提取补丁

使用下采样为每个贴片找到一个完整的颜色。稍后您可以查看其他计算方法,但这应该可以很好地工作

对于权重wh、ws、wv,计算试验颜色和每个参考颜色之间的相似度=whabs(h0-h1)+wsabs(s0-s1)+wv*abs(v0-v1)。稍后您可以查看其他距离度量,但这应该非常有效。从相等的重量开始。该方法的一个优点是,无论参考条的尺寸或尺寸组合如何变化,该方法都表现良好


对结果进行排序,以查找最相似和第二相似的匹配项。请注意,相似性设置为零表示完全匹配,而大数字表示不匹配。使用这两个结果的比率来估计最相似匹配的质量-如果前两个匹配非常接近,则可能两者都不是很匹配。

您想单独分离条带还是想做其他事情?我不想分离条带。图片仅供参考。假设我有这个图像。哪一条最相似?我应该早点提到这一点。对不起,我想知道你是否真的想要主色调?也许高精度的平均值比较合适。@Joel,什么是高精度的平均值?我假设这是在比较低精度的平均…这真的是我想要实现的。“我不想分离条带。该图像仅供参考。假设我有这个图像I.imgur.com/qn2AAJp.jpg?1。在哪个条带中最相似?我应该在前面提到。抱歉”好的,扫描所有RGB或HSV值的图像。找到三个值中每个值的平均值,并将其映射到具有轴R、G、B或H、S、V的三维网格。计算从您必须选择的每种主色到G的欧几里德距离