2019-7-30 opencv图像处理9-轮廓5(Contours)轮廓层次结构(含4种检索模式)

本文介绍了opencv中的轮廓层次结构,包括轮廓的父子关系,以及四种轮廓检索模式:RETR_LIST、RETR_EXTERNAL、RETR_CCOMP和RETR_TREE的详细解析,重点阐述了每种模式在处理轮廓关系时的不同之处。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官网参见https://docs.opencv.org/3.4.1/d9/d8b/tutorial_py_contours_hierarchy.html

本篇学习的是轮廓的层次结构,例如:轮廓之间的父子关系。

前面几篇中,我们已经学习了一些opencv提供的有关轮廓的函数,例如下面。

image, contours, hierarchy = cv.findContours( image, mode, method[, contours[, hierarchy[, offset]]]	)

当我们使用 cv.findContours()函数寻找图像的轮廓时候,需要传入参数Contour Retrieval Mode(轮廓提取模式)。通常我们会使用cv.RETR_LIST或者cv.RETR_TREE, 效果都不错。那么它们是什么意思呢?

我们再来看看函数的输出,有3个数组,第1个是图像,第2个是轮廓,第3个hierarchy 我们称为层次结构。在前面的文章中还从来没有使用过hierarchy。那么什么是层次结构?它的作用是什么?它和轮廓提取模式又是什么关系呢?

这就是本篇所要学习的内容。

1.什么是层次结构-hierarchy

通常我们会在图像中使用cv.findContours()函数寻找物体。物体在图像中处于各种位置,有时候一些形状会在另外一些形状的内部,就像嵌套图形一样。此时,我们把外部的形状称为父亲,内部的形状称为儿子。这样一来,图像中的轮廓之间就有了某种关系。我们也就可以确定某个轮廓和其他轮廓之间的关系,例如:它是其他轮廓的子轮廓,或者是其他轮廓的父轮廓。这种关系就是层次结构-hierarchy

在这里插入图片描述
观察上图,有几个图形编号为0-5。最外边矩形框的外轮廓编号2,内轮廓编号2a。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值