cv2.findContours()函数
cv2.findContours(image, mode, method[, contours[, hierarchy[, offset ]]])
其中
第一个参数是需要寻找轮廓的图像;
第二个参数是轮廓的检索模式,有四种方式:
这四种方法一个一个尝试,看一下哪种方法比较合适项目要求
第三个参数method为轮廓的近似办法,有三种方法:
在使用cv2.findContours()函数来查找检测物体的轮廓,根据网络上的教程复制以下代码:
image,cnts,hierarchy=cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
运行报了以下错误:
image,contours,hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
ValueError: not enough values to unpack (expected 3, got 2)
看了python cv2.findContours()函数,发现这是因为opencv版本的问题
我查看配置环境的opencv版本,版本为4.5.5
import cv2
print(cv2.__version__)
对于opencv3会返回三个值,分别是img, countours, hierarchy,而对于注:opencv4会返回两个值,分别是countours, hierarchy
因此,对于上面错的错误,我解决方法如下:
contours,hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)