一起学OpenCV图像处理技术 第七弹

图形轮廓

一个轮廓对应着一系列的点, 这些点以某种方式表示图像中的一条曲线。在OpenCV中,函数cv2.findContours() 用于查找图像的轮廓, 并能够根据参数返回特定表示方式的轮廓(曲线) 。函数cv2.drawContours() 能够将查找到的轮廓绘制到图像上, 该函数可以根据参数在图像上绘制不同样式(实心/空心点,以及线条的不同粗细、颜色等)的轮廓,可以绘制全部轮廓也可以仅绘制指定的轮廓。

函数cv2.findContours()

语法格式为:
image,contours,hierarchy=cv2.findContours(image,mode,method)
式中的返回值为:

  • image: 与函数参数中的原始图像image一致。
  • contours: 返回的轮廓。
  • hierarchy: 图像的拓扑信息(轮廓层次)。式中的参数为:
  • image: 原始图像。8位单通道图像,所有非零值被处理为1所有零值保持不变。也就是说灰度图像会被自动处理为二值图像。在实际操作时,可以根据需要,预先使用阈值处理等函数将待查找轮廓的图像处理为二值图像。
  • mode: 轮廓检索模式。
  • method: 轮廓的近似方法

1.image
该返回值与参数image是一致的, 就是原始输入图像。在OpenCV 4.X中, 该返回值已经被取消。在OpenCV 4.X中, 函数cv 2.find Contours(仅有两个返回值, 其语法格式为:
contours,hierarchy=cv2.find Contours(image,mode,method)

2.返回值contours
该返回值返回的是一组轮廓信息,每个轮廓都是由若干个点所构成的。例如,contours[i]是第i个轮廓(下标从0开始),contours[i] [j] 是第i个轮廓内的第j个点。

3.返回值
图像内的轮廓可能位于不同的位置。比如,一个轮廓在另一个轮廓的内部。在这种情况下,我们将外部的轮廓称为父轮廓,内部的轮廓称为子轮廓。按照上述关系分类,一幅图像中所有轮廓之间就建立了父子关系。
根据轮廓之间的关系,就能够确定一个轮廓与其他轮廓是如何连接

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值