如果有一个图像的给定二维数组,其中阈值已完成,现在是二进制信息。简单的多斑点检测二值图像?
是否有任何特定的方式来处理此图像,我得到图像上的多个斑点的坐标?
,因为这个过程需要在10+仿真机器人上的自定义仿真器同时运行在C
我需要的斑点xy坐标我不能用OpenCV的,但首先我需要首先找到那些多斑点。
像素组大小的最简单标准应该足够了。但我不知道如何开始编码。
PS:单个blob应该没问题。问题是多个斑点。
刚刚开始?
如果有一个图像的给定二维数组,其中阈值已完成,现在是二进制信息。简单的多斑点检测二值图像?
是否有任何特定的方式来处理此图像,我得到图像上的多个斑点的坐标?
,因为这个过程需要在10+仿真机器人上的自定义仿真器同时运行在C
我需要的斑点xy坐标我不能用OpenCV的,但首先我需要首先找到那些多斑点。
像素组大小的最简单标准应该足够了。但我不知道如何开始编码。
PS:单个blob应该没问题。问题是多个斑点。
刚刚开始?
你可以通过二进制图像与类似下面的算法标签连接部分:
遍历每个二进制像素,P,逐行
A.如果p为真和在labelArray该位置对应的值是0(未标记的),将其分配给一个新的标签,并做了广度优先搜索,将添加所有周围的二进制像素,同样的标签也是如此。
现在唯一的问题是如果您有多个相互接触的斑点。由于您知道斑点的大小,因此您应该能够计算出给定连通区域中有多少个斑点。这是棘手的部分。您可以尝试在此时进行k-means聚类。您也可以尝试使用其他方法,如使用二进制扩展。
看看QuickBlob这是一个小巧的独立C库,听起来非常适合您的需求。
QuickBlob带有一个小的命令行工具(csv-blobs
),其输出所述输入图像内找到的每个斑点的位置和大小:
./csv-blobs white image.png
X,Y,size,color
28.37,10.90,41,white
51.64,10.36,42,white
...
下面是一个例子(输出图像产生得益于show-blobs.py
随QuickBlob微小的Python实用程序):
我知道,我非常迟到了,但我只是将这种对于t他正在研究这个问题的益友。
这是一个很好的描述,可能适合您的需求。 http://www.mcs.csueastbay.edu/~grewe/CS6825/Mat/BinaryImageProcessing/BlobDetection.htm
尝试谷歌连接组件。您也可以根据高斯算子的拉普拉斯算子来查找斑点检测。 – Zaphod 2013-04-21 15:06:27
好吧,高斯算符拉普拉斯算子,我不明白如何在代码中实现它.... – ivanwong888899999 2013-04-21 15:17:04