matlab中8邻域边界跟踪算法 程序,【数字图像处理】边界跟踪算法

轮廓提取

轮廓提取:对于一副二值化图像,物体与背景分开,如果背景是白物体,物体为黑的话,我们可以采用掏空内部点法进行轮廓提取。

具体算法如下:

首先开辟新的内存空间,然后遍历图像,如果8个邻域像素都和中心点不相同,则对新的内存空间的该点进行置值。

这里原图背景是白,物体为黑的,新的内存空间全部置为白,对原图像的每点进行判断,如果8个邻域像素都和中心点不相同,则将内存缓冲区中的该点置为黑。

bc33a9ef182b2825d48e4995107a73ea.png

边界跟踪算法

基于边缘的分割常用方法之一,用于区域已分出(二值或已标注),但边界未知的情况。

首先在图像中找到一个边界点,然后从这个边界点出发,按照某种策略寻找下一个边界点,以此跟踪出目标边界。

对于边界跟踪法,重要的是三个部分,边界的起始点、搜索规则(边界判别准则),搜索终止条件。

起始点:确定边界的起始搜索点,起始点的选择很关键,对某些图像,选择不同的起始点会导致不同的结果。

搜索规则(边界判别准则):确定合适的边界判别准则和搜索准则,判别准则用于判断一个点是不是边界点,搜索准则则指导如何搜索下个边缘点。

搜索终止条件:确定搜索的终止条件。

这里搜索终止条件对于封闭轮廓和非封闭轮廓有不同的处理:

封闭轮廓:

直至跟踪的后续点回到起始点。

非封闭轮廓:

待续。。。

我们这里对封闭轮廓的跟踪算法进行讨论,具体算法如下:

1.找到起始点,记录该点

2.初始跟踪方向为左上方0方向

3.判断该点是否为目标点,是则把该置为新的跟踪的起始点

4.将找到该点目标点的方向逆时针旋转90度,作为新的跟踪方向,继续检测新的跟踪方向上的点

5.若不是目标点,则沿顺时针旋转45度,一直找到目标点

6.找到目标点后,在当前跟踪方向的基础上,逆时针旋转90度作为新的跟踪方向,用同样的方法跟踪下一个边界点

7.直到回到起始点

6230c66a43c92826b7d17387d871aa90.png

ec24e309d6017536c7307f354fc0509b.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值