2013-04-28 98 views
3

任何人都知道一種方式檢測blob與python cv opencv庫?最初我不想使用外部庫作爲cvBlobs。Blob檢測與python opencv

我工作的一個車牌識別,並具有類似的enter image description here

處理一些圖片,並希望分開斑點趕上板。

我還沒有做它在C#中使用AForge:

BlobCounterBase bc = new BlobCounter(); 
bc.FilterBlobs = true; 
bc.MinHeight = 5; 
bc.MinWidth = 5; 

bc.ProcessImage(bitmap); 
Blob[] blobs = bc.GetObjectsInformation(); 
for (int i = 0, n = blobs.Length; i < n; i++) 
{ 
    if (blobs.Length > 0) 
    {    
     bc.ExtractBlobsImage(bitmap, blobs[i], true); 
     Bitmap copy = blobs[i].Image.ToManagedImage(); 
     Console.WriteLine(blobs[i].Rectangle.Size.ToString()); 
     copy.Save("C:/Users/Marcilio/Desktop/segmentacao/" + i + ".jpg"); 
    } 
} 
bitmap.Save("C:/Users/Marcilio/Desktop/foto2.jpg"); 

現在我需要相當於Python的OpenCV的。

+0

你好我也試圖識別號牌。所以我需要幫助來檢測車牌,所以你可以幫我爲我的郵件ID =「[email protected]」 – karnaf 2014-09-26 09:08:21

回答

7

OpenCV有findContours函數,它返回輪廓及其層次的列表。一旦你有了輪廓,你可以得到他們的時刻(例如計算質心),它們的面積,它們的凸面以及你需要的其他東西。

所以,你的代碼看起來像這樣(未經):

contours, _ = cv2.findContours(image, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) 
for c in contours: 
    rect = cv2.boundingRect(c) 
    if rect[2] < 5 or rect[3] < 5: continue 
    print cv2.contourArea(c)