2012-09-07 65 views

回答

2

既然它是一個二進制圖像,你可以很容易地得到blobs。一旦你得到斑點,你可以很容易地計算斑點面積。 您可以使用cvBlobsLib來獲取斑點。 OpenCV沒有集成cvBlobsLib。你可以自己做。但OpenCV具有輪廓功能。您可以使用findContours來獲取斑點/輪廓,然後獲取該區域。 OpenCV - findContours

OpenCV - Structural Analysis and Shape Description

,可以找到關於時刻,huMoments,輪廓等使用的時刻,你可以創建自己的斑點信息,並也將幫助您獲得的斑點面積。

下面是其使用了OpenCV的Python綁定機器視覺的開源框架 - SimpleCV

他們已經實現並採用等高線和力矩完全BLOB功能。你可以看看。

Blob

BlobMaker

它是用Python編寫的,但你可以把它移植到C++和使用的斑點。

0

您必須編寫某種區域增長算法,從您的起點開始,逐漸添加具有相同顏色的相鄰像素。

使用cv :: floodFill函數,將形狀中的像素設置爲特定顏色,然後對具有該特定顏色的圖像中的像素進行計數,可以使用惰性(並且速度慢得多)。