OpenCV findContours函数的参数使用详解

OpenCV中的findContours函数是用来检测物体的轮廓,下面详细说明一下这个函数各参数的意义以及使用。Python代码中的findContours函数如下:

findContours(image, mode, method, contours=None, hierarchy=None, offset=None)

image:输入的二值图像。

mode:定义轮廓的检索模式,可选项为cv2.RETR_EXTERNAL(只检索最外围轮廓)、cv2.RETR_TREE(检索所有轮廓,并建立一个等级树结构)、cv2.RETR_CCOMP( 检测所有轮廓,只建立两个等级,最外的轮廓及其内的轮廓)、cv2.RETR_LIST(检测所有轮廓,但是不建立等级关系)

method:定义轮廓的检索方式,可选项为cv2.CHAIN_APPROX_NONE(保存轮廓上的所有连续的点)、cv2.CHAIN_APPROX_SIMPLE(仅保留轮廓上的拐点信息,即关键点)

offset:轮廓点的偏移量,如果加上偏移后轮廓点超出边界,程序会内存溢出报错。

函数返回值:

对于OpenCV版本不同,其返回值数目也不相同,两个(contours, hierarchy)或者三个(image, contours, hierarchy)。

image:原图(后面版本去掉了这一项,其实确实没有什么用处。)

contours:轮廓点位置,根据检索模式来提取所需的轮廓。

hierarchy:轮廓等级结构,保存的等级信息。

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
`cv2.findContours` 是 OpenCV 库中用于查找图像中轮廓的函数。它的详细用法如下: ```python contours, hierarchy = cv2.findContours(image, mode, method, offset) ``` 参数解释: - `image`:输入图像,通常为二值图像(黑白图像)。 - `mode`:轮廓检索模式,指定轮廓的层次结构。常用的模式有: - `cv2.RETR_EXTERNAL`:只检测最外层的轮廓。 - `cv2.RETR_LIST`:检测所有轮廓,不建立层次结构。 - `cv2.RETR_CCOMP`:检测所有轮廓,并将其组织为两层的层次结构。 - `cv2.RETR_TREE`:检测所有轮廓,并完整地重构它们的层次结构。 - `method`:轮廓的逼近方法。常用的方法有: - `cv2.CHAIN_APPROX_NONE`:保存所有的轮廓点。 - `cv2.CHAIN_APPROX_SIMPLE`:仅保存轮廓的端点。 - `cv2.CHAIN_APPROX_TC89_L1` 和 `cv2.CHAIN_APPROX_TC89_KCOS`:应用 Teh-Chin 链逼近算法中的一种。 - `offset`:可选参数,用于指定轮廓点相对于原始图像中的偏移量。 返回值解释: - `contours`:检测到的轮廓,每个轮廓由一系列点组成的数组表示。 - `hierarchy`:轮廓的层次结构信息,可以用于分析轮廓之间的关系。 关于数学函数方面,`cv2.findContours` 函数主要使用了图像处理和几何学的相关算法,例如边缘检测、二值化、连通组件分析等。这些算法涉及到数学中的图像处理、几何运算、向量计算等概念和方法,但具体的数学细节超出了本回答的范围。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值