【python-opencv】cv2.findContours()寻找轮廓时报错小汇总

函数:cv2.findContours(),cv2.drawContours()


轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同
的颜色或者灰度。轮廓在形状分析和物体的检测和识别中很有用。


增加识别成功率的几个方法:
• 为了更加准确,要使用二值化图像。在寻找轮廓之前,要进行阈值化处理
或者 Canny 边界检测。

• 查找轮廓的函数会修改原始图像。如果你在找到轮廓之后还想使用原始图
像的话,你应该将原始图像存储到其他变量中。也就是说将原图进行复制
例如:
contours, hierarchy = cv2.findContours(image,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)


加入传入的图片是image,而image是读入opencv的原图,此时大多数传入image.copy();如:
contours, hierarchy = cv2.findContours(image.copy(),cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
或者:
image = image.copy()
contours, hierarchy =
cv2.findContours(image,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)


如果以上操作,程序还是报错的话,就要注意传入图片的格式
正确传入格式为:uint8****这点很重要,真的很重要!!!
不要问我是怎么知道的,因为我也遇到过这个问题!!!
查看图片格式为:print(image.dtype)
如果不是uint8,将其转换过来,传入进去


如果还报错
如果还报错
如果还报错
可能是版本问题
contours, hierarchy =
cv2.findContours(image,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
有的版本会返回三个参数,有的版本返回2个参数,大家注意一下

你可能感兴趣的:(【python-opencv】cv2.findContours()寻找轮廓时报错小汇总)