2012-11-03 94 views
2

我試圖獲得與OpenCV的和Python,這裏的代碼圖像中的最大面積:問題提取contourArea的OpenCV(蟒蛇)

#Loading image: 
fuente=cv.LoadImage('train/fruit1.jpg') 

#Converting to grayscale... 
#Converting to binary... 
#Apply canny method... 
#Dilating borders... 

#Trying obtain contours: 
storage = cv.CreateMemStorage(0) 
contours = cv.FindContours(bordes, storage, cv.CV_RETR_EXTERNAL, cv.CV_CHAIN_APPROX_SIMPLE,(0,0)) 

#Drawing Contours... 
contornoimg=cv.CreateImage(cv.GetSize(fuente),fuente.depth,1) 
cv.DrawContours(contornoimg,contours,cv.Scalar(255),cv.Scalar(0),2,1,8,(0,0)); 
cv.SaveImage("train/contornos.png",contornoimg); 

如果現在我打開imagen畫質「contornos.png」,我可以看到輪廓型動物,不僅是一個,就像我想最大的輪廓,我要計算與面積最大的輪廓

max_area = -1 
best_cnt = None 

for cnt in contours: 
    area = cv.ContourArea(cnt,slice=cv.CV_WHOLE_SEQ) 
    if area > max_area: 
     max_area = area 
     best_cnt = cnt 

但是,當我執行該文件,獲得此錯誤消息:

cv.ContourArea(cnt,cv.CV_WHOLE_SEQ)->AttributeError: 'module' object has no attribute 'CV_WHOLE_SEQ' 

任何幫助?感謝你所做的一切!

+0

這將是很好,如果你可以上傳您使用的圖像 - 使我們更容易測試您的代碼。此外,通過使用Python的新cv2接口,你可以讓你的生活變得更輕鬆。我最近換了,真的更方便。 – casper

+0

這是禁止上傳圖片的新用戶,我試過了,但我不得不刪除它們,但不必擔心,昨天我決定改用cv2,舊版本有很多問題,所以我不得不改變我的所有功能都可以在cv2和我提取的區域沒有問題,謝謝! – psych0

+0

很高興你的工作! – casper

回答