数字图像处理实验五-图像分割、表示与特征提取
做到旋转的边界矩形时,cv2.cv.BoxPoints()函数处出现'module' object has no attribute 'cv' 的错误
import cv2
import numpy as np
img = cv2.imread('leaf.jpg',0)
ret,thresh = cv2.threshold(img,140,255,0)
contours,hierarchy = cv2.findContours(thresh, 1, 2)
cnt = contours[0]
rect = cv2.minAreaRect(cnt)
box = cv2.cv.BoxPoints(rect)
box = np.int0(box)
cv2.drawContours(img,[box],0,(0,0,255),2)
cv2.drawContours(img,contours,-1,(0,0,200),3)
cv2.imshow("img", img)
cv2.waitKey(0)
(代码来自opencv-python-tutroals相应章节)
弄了一晚上都不知道哪里出了问题。。。后来发现我装的是opencv3.0.0,然后重新装了个opencv2.4.10再运行就不会出错了
另外还发现了这两个版本的另一个差别,对于函数cv2.findContours()
contours,hierarchy = cv2.findContours(thresh, 1, 2)
在opencv3.0.0中返回值有3个必须全部写全,也就是说上面这一句会报错:too many values to unpack
而在opencv2.4.10中就只需写上2个变量用来存返回值。