在
Windows上的python 2.7.3上,opencv 2.4.3发生了一个有趣的错误.当尝试使用drawContours时,我会得到一个“TypeError:轮廓数据类型= 5不支持”错误,除非我先打开/取消打开轮廓.
这不工作(我得到“TypeError:轮廓数据类型= 5不受支持”):
noBg = cv2.blur(src,(5,5)) noBg = cv2.inRange(noBg,np.array([80,200],np.uint8),np.array([255,50,255],np.uint8)) noBg = np.invert(noBg) contours,hierarchy = cv2.findContours(noBg,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE) cv2.drawContours(src,contours,-1,(0,255,0),3)
但这样做是有效的:
noBg = cv2.blur(src,cv2.CHAIN_APPROX_SIMPLE) tmp = cPickle.dumps(contours) contours = cPickle.loads(tmp) cv2.drawContours(src,3)
有没有人看到这个行为,还是我缺少一些明显的东西?我很喜欢python / opencv,所以很可能是这样.
编辑:刚刚在我的Mac上测试过,这两种情况都能正常工作.也许只是Windows的问题?
解决方法
如果你降级到opencv 2.4.2这将工作.它似乎是一个2.4.3的错误,刚刚在两周前发布.