2

OpenCV と Python を使用して画像内の最大の領域を取得しようとしています。コードは次のとおりです。

#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" を開くと、1 つだけでなく、さまざまな輪郭が表示されます。たとえば、最大の輪郭が必要な場合は、最大の領域で輪郭を計算する必要があります。

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'

何か助けはありますか?すべてをありがとう!

4

1 に答える 1

-1

私はこれを使用します:

インポート cv2

エリア = cv2.contourArea(cnt)

ここで見つけました: http://opencvpython.blogspot.ru/2012/04/contour-features.html

于 2012-11-29T20:05:27.603 に答える