OpenCV-Python官方教程-14-轮廓的层次结构

  • 用函数 cv2.fifindContours 来查找轮廓,我们需要传入第二个参数:轮廓提取模式(Contour_Retrieval_Mode)。
    还有些情况,一个形状在另外一个形状的内部。这种情况下我们称外部的形状为父,内部的形状为子。按照这种方式分类,一幅图像中的所有轮廓之间就建立父子关系。这样我们就可以确定一个轮廓与其他轮廓是怎样连接的,比如它是不是某个轮廓的子轮廓,或者是父轮廓。这种关系就成为组织结构。
  • OpenCV 使用一个含有四个元素的数组表示。[Next,Previous,First_Child,Parent]。
    1,Next 表示同一级组织结构中的下一个轮廓。在同一级没有 Next。这时 Next=-1。
    2,Previous 表示同一级结构中的前一个轮廓。没有 Previous,所以 Previous=-1。
    3,First_Child 表示它的第一个子轮廓。
    4,Parent 表示它的父轮廓。
  • 轮廓检索模式
    1,RETR_LIST 从解释的角度来看,应是最简单的。它只是提取所有的轮廓,而不去创建任何父子关系。换句话说就是“人人平等”,它们属于同一级组织轮廓。所以在这种情况下,组织结构数组的第三和第四个数都是 -1。但是,很明显,Next 和 Previous 要有对应的值。如果你不关心轮廓之间的关系,这是一个非常好的选择。
    2,RETR_EXTERNAL 如果你选择这种模式的话,只会返回最外边的的轮廓,所有的子轮廓都会被忽略掉。当你只想得到最外边的轮廓时,你可以选择这种模式。
    3,RETR_CCOMP 在这种模式下会返回所有的轮廓并将轮廓分为两级组织结构。例如,一个对象的外轮廓为第 1 级组织结构。而对象内部中空洞的轮廓为第 2 级组织结构,空洞中的任何对象的轮廓又是第 1 级组织结构。空洞的组织结构为第 2 级。
    4,RETR_TREE 终于到最后一个了,也是最完美的一个。这种模式下会返回所有轮廓,并且创建一个完整的组织结构列表。它甚至会告诉你谁是爷爷,爸爸,儿子,孙子等。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值