基于Snake模型与轮廓跟踪的区域填充算法

2018-10-26 11:38苗龙元于正林
科技资讯 2018年11期

苗龙元 于正林

摘 要:针对图像中外形复杂的孔洞填充问题,提出一种基于Snake模型与轮廓跟踪的区域填充算法对复杂孔洞进行填充。首先,对二值图像进行检测求出内部边界的像素点,并对其坐标进行保存。其次,通过轮廓跟踪法求取每个轮廓边界的所包含的像素位置。再次,通过将这些边界作为Snake模型的初始曲线,在其内力和外力的指导下,填充内部孔洞。最后,利用Snake模型与轮廓跟踪删除边界外存在的多余部分。通过MATLAB实验本文提出的算法,证明可以填充外形复杂的多孔区域,提高了填充精度。

关键词:区域填充 Snake模型 轮廓跟踪

中图分类号:TP391.41 文献标识码:A 文章编号:1672-3791(2018)04(b)-0002-02

区域填充作为计算机图形学中的一项重研究内容[1],被广泛运用于数字图像处理中[2-4]。随着科技的发展,数字图像处理在各个领域占有越来越重要的地位。在数字图像处理过程中,经常会出现由于图像采集过程中存在的光线干扰、背景选用等问题,导致所要提取的目标图形在经过二值化等运算后存在缺失。为保证图像处理的最终效果,减少图像后续处理的难度,提高图像的处理效率,就必须对丢失区域进行填充。

Snake模型最早由Kass等[5]在1987年提出的,其最初目的是通过曲线能量最小化使曲线逐渐向目标边界演化完成对边界的分割。Snake是一条闭合的参数曲线,在Snake模型内力和外力的共同作用下能使轮廓曲线在运动的同时保持其连续性和平滑性,因此可用于图像填充。本文将Snake模型运用到区域填充中,提出基于Snake模型与轮廓跟踪的区域填充算法。通过轮廓跟踪获取Snake模型的初始曲线,并增加曲线法线方向的力作为外驱动力,使曲线按照固定的步伐移动,对扫过的部分进行填充,从而完成对区域填充。

1 边界轮廓的获取方法

区域填充的目的是填充图像中闭合区域内的部分,要想做到精准填充就必须掌握其边界轮廓。鉴于轮廓跟踪法可以准确获取图像的边界轮廓,同时按照一定的顺序记录边界轮廓各点的坐标。本文采用轮廓跟踪法提取边界轮廓,为后续的区域填充提供演化曲线。轮廓跟踪的步骤有以下几个方面。

(1)对图像进行二值化处理,并记录图像中像素点值为255的点的坐标。

(2)采用4邻域(如图1(a))以C点(记录点)为中心点,按照逆时针从0~3的顺序进行判断,只要其中任意一点像素点的值为0,则判定C点为边界点。

(3)例遍所有记录点,记录所求的边界点的坐标,并对边界进行颜色标记。

(4)最后采用8邻域(如图1(b))轮廓跟踪法对边界点跟踪,从0开始按照逆时针进行跟踪,当遇到像素点的值为255时,提取其坐标并以此点为中心点继续寻找下一边界点,直到首尾(S点)相接,边界提取如图1(c)所示。

2 基于Snake模型的区域填充

2.1 Snake模型简介

Snake模型对初始曲线的位置敏感,容易陷入局部极值,容易造成无法收敛。经过几十年的發展,一些改进的Snake模型应运而生。其中Cohen等[6]于1993年在Snake模型的基础上提出了Balloon snake模型,其原理是在Snake模型的基础上增加一个外力项(法线方向),使曲线可以膨胀或收缩,更为适合处理复杂的轮廓。

Snake是一条由有限点组成的闭合的参数曲线c(s)=[x(s),y(s)],0≤s≤l,l表示是曲线的总长度,x(s)和y(s)表示组成闭合曲线各点的坐标。Snake在图像域中,向着使能量泛函(式1)最小化的方向运动。

(5)计算两点之间经过的像素点,并记录下其坐标。

(6)对记录下的坐标点进行填充。

(7)利用轮廓跟踪删除与边界相连的多余点,保证多余填充的部分完全孤立(执行一次)。

(7) 继续检测是否含有未填充的区域如果有转到步骤1。

(8)利用以上步骤对填充多余的部分进行删除,得到最后的填充结果。

3 实验结果对比

MATLAB作为当今国际上最著名的数学工具,由于MATLAB具有编程简单、良好的交互环境和自带大量图像处理库函数等特点,可以为使用者节省大量的开发时间。为实现本文提出的算法并与其他算法进行比较,本文选择采用MATLAB R2010b作为实验平台实现所本文提出的算法,如图2所示。

4 结语

根据Snake模型在运动过程中能够保持轮廓曲线的平滑性、连续性等特点,本文在Snake模型和Balloon Snake模型的基础上提出了基于Snake模型与轮廓跟踪的区域填充算法。经试验证明,本文提出的算法对复杂的图形能做到精准填充。

参考文献

[1] 秦晓薇.区域填充算法的研究[J].赤峰学院学报:自然科学版,2011,27(6):47-49.

[2] 张志龙,李吉成,沈振康.一种新的快速复杂连通区域扫描线填充算法[J].计算机工程与应用,2004,40(31):6-8.

[3] 巨志勇,陈优广.一种新的基于链码的填充算法[J].计算机工程,2007,33(17):211-215.

[4] 彭金虎.非洪泛的基于区域标记的图像分割与填充算法[J].科学技术与工程,2013,13(5):1359-1361.

[5] Kass M,Witkin A,Terzopoulos D.Snake:active con-tour models[J].International Journal of Computer Vis-ion,1987,1(4):321-331.

[6] Cohen LD,Cohen I.Finite-element methods for active contour models and balloons for 2-D and 3-D images[J].IEEE Trans Pattern Anal Machine Intell,1993,15(11):1131-1147.