我正在尝试使用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);
如果现在我打开图像“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 :(得分:0)
我用这个:
导入cv2
area = cv2.contourArea(cnt)
我在这里找到了: http://opencvpython.blogspot.ru/2012/04/contour-features.html