python – drawContours的数据类型错误,除非我先打开/打开

前端之家收集整理的这篇文章主要介绍了python – drawContours的数据类型错误,除非我先打开/打开前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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的错误,刚刚在两周前发布.

猜你在找的Python相关文章