Opencv学习笔记(十四)轮廓检测

引言: 本次轮廓检测的介绍基于opencv中的findContours()函数,首先介绍了它的数学原理,然后对其参数进行分析,最后结合drawContours()函数给出了一个轮廓检测的运用实例。

一、轮廓检测原理

opencv中轮廓检测函数的原理基于一篇早期的图像边缘跟踪论文:《Topological Structural Analysis of Digitized Binary Images》,有兴趣的人可以去找来学习一下,此次将大体介绍一下其中关于轮廓检测部分的算法。
首先明确几个基本概念和符号表示:
轮廓检测所针对的是二值化的边缘图像,图像的上下左右边界构成了图像的框架(frame),一般情况下图像的框架都为0像素,图像中由连通的0像素占据的区域叫做0连通域(0-component),同理的得到1连通域(1-componetn),如果存在0连通域S包含了图像的框架,则称S为背景(background)
图像中第i行第j列的像素用 ( i , j ) (i,j) (i,j)表示,像素值用 f i , j f_{i,j} fi,j表示,则此图像可由 F = f i , j F={f_{i,j}} F=fi,j表示;
当使用4(8)连通对某个像素的连通性进行描述时,如该像素为1则指4(8)连通,如该像素为0则指8(4)连通
在这里插入图片描述
**bia在这里插入图片描述
边界点(borderpoint):在4(8)连通的情况下,如果某个1像素点 ( i , j ) (i,j) (i,j)在他的8连通域中有0像素点 ( p , q ) (p,q) (p,q),那么这个1像素点就称作是边界点。实际上描述的就是判断1连通域( ( i , j ) (i,j) (i,j)的父集合)和0连通域( ( p , q ) (p,q) (p,q)的父集合)的交界处,取其交界线上1像素点作为边界点。

二、轮廓在opencv中的应用

参考文献
OpenCV轮廓提取算法详解findContours()
Topological Structural Analysis of Digitized Binary Images by Border Following

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值