最近研究图像边界跟踪的相关算法,看了一些论文,得到一些相关的算法知识,与大家分享。
Square算法为了提取图案的边界,
首先,对给定的数字图像,即在网格平面白像素背景上的一组黑色像素,我们需要找到一个黑色边界像素,并把它作为跟踪的“开始”点。
算法将从该“开始”点出发来完成对边界的跟踪。
具体过程如下:
(1)每当发现自己站在一个黑色的像素,则向左进入相邻的像素;
(2)每当发现自己站在一个白色像素,就右转进入相邻像素;
(3)直到你再次遇到开始点时,停止;
(4)走过的黑色像素就是是图案的边界。
研究表明,跟踪算法不能提取在现实生活中出现的大多数图形的轮廓。换句话说,它的性能有非常大的局限性。这在很大程度上是归因于左,右转往往会错过给定的像素“斜侧”的像素。
改进方法:
- 规定第n次跟踪到开始像素后才停止跟踪,其中至少为2;
- 算法跟踪边界进入起始点时与第一次进入的方向相同时,停止追踪,结束运行。
更改终止准则会改善边界跟踪算法的性能,但不会克服它只针对具有特殊的邻接性图形有效的弱点:边界跟踪算法无法跟踪具有邻接性而不是邻接模式的图形边界。在下面的图中,我们可以看出:即使应用Jacob Eliosoff停止准则,边界跟踪算法也无法追踪得到只具有八邻接性而不具有四邻接性的图形的边界。
这个边界跟踪算法不能提取大部分图像的轮廓。但是,它并不是完全没有用处。对于一种特别类型的图形,边界跟踪算法可以完整地并且准确地提取它的边界,那就是背景与目标均为四邻接的图形。对给定符合这种连通特性的图像进行处理,Square边界跟踪算法(应用停止准则)可以成功地提取图形的边界。