opencv findContours函数

#3 查找轮廓

# p1:8-bit单通道图像。该图像会将非0像素值视为1,0像素值视为0,因此也被视为二值图像。
# p2:轮廓检索模式,检测外轮廓还是内轮廓,是否包含继承(包含)关系:
# cv2.RETR_EXTERNAL 表示只检测外轮廓,忽略轮廓内部的结构,无继承相关信息;
# cv2.RETR_LIST 检测所有的轮廓但不建立继承(包含)关系;
# cv2.RETR_CCOMP 检测所有轮廓,但是仅仅建立两层包含关系;
# cv2.RETR_TREE 检测所有轮廓,并且建立所有的继承(包含)关系。
# p3:轮廓近似方法,有记录方法:cv2.CHAIN_APPROX_NONE 存储所有的轮廓点,相邻的两个点的像素位置差不超过 1,即 max(abs(x1-x2), abs(y1-y2))=1;
# cv2.CHAIN_APPROX_SIMPLE 压缩水平方向,垂直方向,对角线方向的元素,只保留该方向的终点坐标,例如一个矩阵轮廓只需 4 个点来保存轮廓信息。
# contours:返回值,检测到的轮廓。每个轮廓都以点向量的形式存储。
# hierarchy:返回值,包含有关图像轮廓的拓扑信息。它的元素和轮廓的数量一样多。对于第i ii个轮廓contours[i],元素hierarchy[i][0]、hierarchy[i][1]、hierarchy[i][2]和hierarchy[i][3]分别设置为同一层次的下一个轮廓、同一层次的上一个轮廓、该轮廓的第一个子轮廓(嵌套轮廓)、该轮廓的父轮廓,它们的取值是轮廓的索引值(从0开始)。如果contours[i]没有与其同级的下一个轮廓、上一个轮廓、嵌套轮廓或父轮廓,则hierarchy[i]的相应元素将为负。
# hierarchy表示连通域的继承关系矩阵。矩阵大小为( 1 , N , 4 ) (1,N,4)(1,N,4)。
# 基础元素由四个值组成:[Next, Previous, First_Child, Parent]。前两个值表示同级的前后关系,后两个值表示上下级关系。
# Next:下一个同级的轮廓的序号;
# Previous:上一个同级轮廓的序号;
# First_Child:第一个子轮廓的序号;
# Parent:父轮廓的序号;
# 矩阵中的每一个值代表都是 轮廓(contour)的序号(id),其中 -1 代表没有这个元素。
# offset:可选偏移量,每个轮廓点偏移量。如果从图像ROI中提取轮廓,然后在整个图像上下文中对其进行分析,这将非常有用。

contours,hierarchy = cv.findContours(blurred2,cv.RETR_LIST,cv.CHAIN_APPROX_SIMPLE)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值