如何从彩色图像中提取和统计相似颜色点的数量?

Posted

技术标签:

【中文标题】如何从彩色图像中提取和统计相似颜色点的数量?【英文标题】:How to extract and count the number of similar-color dots from color image? 【发布时间】:2016-04-21 23:55:25 【问题描述】:

我有一堆彩色图像,上面有彩色圆点。这些点的颜色相似,但有时点的颜色也可能与我无法提取它们的背景图像相似。下面的图片可以是一个例子 Green dots on IR train image 我试图将颜色空间从 RGB 转换为 HSV;在 H 通道上应用模糊滤镜;在 H 通道上应用 sobel 滤波器;将 H 通道转换为二值图像;应用收缩并计算点数。但结果并不好。训练红外图像的结果,如下所示 Resulting train image

白点表示我找到的点,不是很正确。

那么我如何提取(找到)彩色图像上的那些绿点?

谢谢!

【问题讨论】:

按像素扫描图像并寻找与您的 RGB 值完全匹配的值。如果你知道你的“色点”有多大(以像素为单位),你可以计算触摸/相邻匹配,并确保大小匹配,以防止当背景区域恰好与你的点匹配时出现误报。您也可以通过这种方式小心捕捉重叠的色点。 @MichaelDorgan 感谢您的回复!但是如果绿点不是相同的像素值和相同的大小怎么办?有的深绿色,有的亮绿色,有的大,有的小? 您在原始问题中说“点的颜色相同”如果不是,您会以某种方式知道它们是什么吗? @MichaelDorgan 对不起,我应该把我的问题改成“相似颜色”! :) 好的,那你需要定义类似的。这可能意味着很多很多事情。浅绿色和深绿色是一样的。究竟什么是浅绿色和深绿色?需要某种启发式方法。即使是像添加 R、G、B 三元组这样简单的事情——如果值的变化超过某个数字,它们就不相似。这里的问题是人眼认为大多数深色非常接近,但较浅颜色的细微差异很容易看到。 R、G、B 灵敏度相同。但是,只要您将相似的值保持在某个设定值附近,我认为它会给您一个起点。 【参考方案1】:

对于答案,您应该知道最小和最大允许的点大小以及最小和最大允许的像素颜色。因为这些是通过 Kinect 输入的,所以颜色强度不能直接匹配,但在一个非常小的增量内,我希望您可以检查相邻像素的“好”值。基本上在图像中寻找颜色强度变化很大的“边缘”,看看这些边缘是否形成正确大小的点。玩弄像素颜色必须有多接近才能获得或多或少准确的答案 - 更多的色差意味着捕捉更多的点,但会出现误报,反之亦然。

不确定这是否能满足你的需要,但我认为它会让你变得比现在更好。

【讨论】:

谢谢你迈克尔!

以上是关于如何从彩色图像中提取和统计相似颜色点的数量?的主要内容,如果未能解决你的问题,请参考以下文章

如何在matlab中提取全彩色图像每一点的rgb值,谢谢各位大神

如何根据颜色值聚类彩色图像? [关闭]

如何利用matlab导入并提取jpg彩色图像像素点的坐标及其RGB值?想要完整的编码。谢谢哈。

使用开放CV和python提取或获取图像中几个点的平均RGB颜色

从彩色背景中提取黑色对象

如何使用 C++ 提取图像中的 r g b 颜色分量