如果有一個圖像的給定二維數組,其中閾值已完成,現在是二進制信息。簡單的多斑點檢測二值圖像?
是否有任何特定的方式來處理此圖像,我得到圖像上的多個斑點的座標?
,因爲這個過程需要在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