imutils.grab_contours是imutils == 0.5.2(目前版本)中的新功能。imutils.grab_contours经常搭配 cv2.findContours一起使用,如:

cnts = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL,
cv2.CHAIN_APPROX_SIMPLE) #1
cnts = imutils.grab_contours(cnts) #2

代码1的作用是寻找轮廓。三个输入参数:输入图像(二值图像,黑色作为背景,白色作为目标),轮廓检索方式,轮廓近似方法。

opencv2返回两个值:contours、hierarchy。opencv3返回三个值:img(图像)、countours(轮廓)、hierarchy(层次结构)。


代码2即

imutils.grab_contours的作用,返回cnts中的countors(轮廓),不区分opencv2或opencv3。可以参考源码: https://github.com/jrosebr1/imutils/blob/master/imutils/convenience.py 。

imutils.grab_contours的作用_github