登录 |  注册 |  繁體中文


cv2轮廓检测 finContours

分类: python 颜色:橙色 默认  字号: 阅读(316) | 评论(0)

1. 轮廓检测

 contours, hierarchy = cv2.findContours(image, mode, method[, contours[, hierarchy[, offset]]] )
第一个是输入图像,第二个是轮廓检索模式,第三个是轮廓近似方法
参数1(image):单通道图像矩阵,可以是灰度图,但更常用的是二值图像,一般是经过Canny、拉普拉斯等边缘检测算子处理过的二值图像;
参数2(mode):定义轮廓的检索模式,取值如下:
    CV_RETR_EXTERNAL:只检测最外围轮廓,包含在外围轮廓内的内围轮廓被忽略;
    CV_RETR_LIST:检测所有的轮廓,包括内围、外围轮廓,但是检测到的轮廓不建立等级关系,彼此之间独立,没有等级关系,这就意味着这个检索模式下不存在父轮廓或内嵌轮廓,所以hierarchy向量内所有元素的第3、第4个分量都会被置为-1,
    CV_RETR_CCOMP: 检测所有的轮廓,但所有轮廓只建立两个等级关系,外围为顶层,若外围内的内围轮廓还包含了其他的轮廓信息,则内围内的所有轮廓均归属于顶层;
    CV_RETR_TREE: 检测所有轮廓,所有轮廓建立一个等级树结构。外层轮廓包含内层轮廓,内层轮廓还可以继续包含内嵌轮廓。
参数3(method):定义轮廓的近似方法,取值如下:
    CV_CHAIN_APPROX_NONE:保存物体边界上所有连续的轮廓点到contours向量内;
    CV_CHAIN_APPROX_SIMPLE:仅保存轮廓的拐点信息,把所有轮廓拐点处的点保存入contours向量内,拐点与拐点之间直线段上的信息点不予保留;
    CV_CHAIN_APPROX_TC89_L1:使用teh-Chinl chain 近似算法;
    CV_CHAIN_APPROX_TC89_KCOS:使用teh-Chinl chain 近似算法。
参数6(offset):Point偏移量,所有的轮廓信息相对于原始图像对应点的偏移量,相当于在每一个检测出的轮廓点上加上该偏移量,并且Point还可以是负值!
 

2. 轮廓的绘制

cv2.drawContours(image, contours, contourIdx, color[, thickness[, lineType[, hierarchy[, maxLevel[, offset ]]]]])
 
第一个参数是指明在哪幅图像上绘制轮廓;
第二个参数是轮廓本身,是cv2.findContours()找出来的点集,一个列表
第三个参数指定绘制轮廓list中的哪条轮廓,如果是-1,则绘制其中的所有轮廓。
第四个参数color 颜色,
第五个参数thickness表明轮廓线的宽度,如果是-1(cv2.FILLED),则为填充模式。


上一篇:cv2轮廓特征   下一篇:图像平滑算法介绍

姓 名: *
邮 箱:
内 容: *
验证码: 点击刷新 *   

回到顶部