
Matlab实现区域生长算法.docx
6页Matlab实现区域生长算法(南京航空航天大学机电学院机械工程系,南京11月1日)摘要:图像分割不仅是图像解决领域的一种典型的研究主题,也是图像解决技术的热点和焦点随着计算机解决技术的发展,图像分割算法引起研究人员越来越多的关注本文提出了基于老式的种子区域生长算法的基本上形成一种新的图像自动分割区域的措施算法的实现重要基于Matlab编程实现核心词:图像分割,种子区域生长算法,Matlab一、引言区域生长是一种古老的图像分割措施,最早的区域生长图像分割措施是由Levine等人提出的该措施一般有两种方式,一种是先给定图像中要分割的目的物体内的一种小块或者说种子区域(seed point),再在种子区域基本上不断将其周边的像素点以一定的规则加入其中,达到最后将代表该物体的所有像素点结合成一种区域的目的;另一种是先将图像分割成诸多的一致性较强,如区域内像素灰度值相似的社区域,再按一定的规则将社区域融合成大区域,达到分割图像的目的,典型的区域生长法如T. C. Pong等人提出的基于小面(facet)模型的区域生长法,区域生长法固有的缺陷是往往会导致过度分割,即将图像分割成过多的区域 区域生长是一种串行区域分割的图像分割措施,其长处是基本思想相对简朴,一般能将具有相似特性的联通区域分割出来,并能提供较好的边界信息和分割成果。
在没有先验知识可以运用时,可以获得最佳的性能,可以用来分割比较复杂的图像,如自然景物但是,区域生长法是一种迭代的措施,空间和时间开销都比较大,噪声和灰度不均匀也许会导致空洞和过度割,并在对图像中的阴影效果解决上往往不是较好 区域生长的基本思想是将具有相似性质的像素集合起来构成区域具体先对每个需要分割的区域找一种种子像素作为生长的起点,然后将种子像素周边邻域中与种子像素具有相似或相似性质的像素(根据某种事先拟定的生长或相似准则来鉴定)合并到种子像素所在的区域中将这些新像素当作新的种子像素继续进行上面的过程,直到再没有满足条件的像素可被涉及进来,这样,一种区域就长成了区域生长是指从某个像素出发,按照一定的准则,逐渐加入邻近像素,当满足一定的条件时,区域生长终结区域生长的好坏决定于1.初始点(种子点)的选用2.生长准则3.终结条件区域生长是从某个或者某些像素点出发,最后得到整个区域,进而实现目的的提取简朴来说下三个法则,对出需要分割的图像:1、选用图像中的一点为种子点(种子点的选用需要具体状况具体分析)2、在种子点处进行8邻域或4邻域扩展,鉴定准则是:如果考虑的像素与种子像素灰度值相差的绝对值不不小于某个门限T,则将该像素涉及进种子像素所在的区域。
3、当不再有像素满足加入这个区域的准则时,区域生长停止二、理论基本及算法原理:一方面拟定每个区域中的某个已知点,加上与已知点相似的邻近点形成一种区域,在这里运用区域的均值当邻近点与区域均值的差值的绝对值不不小于阈值T时,即满足生长条件措施是从种子点开始,在8连通方向上生长区域,当其邻近点满足生长条件,则就并入小快区域,当新的点被合并后再用新的区域反复这一过程,直到没有可接受的邻近点时该区域生成过程终结设计思路:1)通过具体观测某幅图像的直方图,估计其拟定种子点范畴[S1,S2],并拟定其阈值T;2)透过对整幅图像的扫描,找出某个区域的一种种子点: 3)开始运用8连通方向,以该种子点为中心进行生成区域; 4)继续用8连通方向,以该区域为中心,把邻近满足生长条件的点并入,生成新的区域;5)反复4)步,直到不再存在邻近满足生长条件的点为止,该区域生成过程结束;6)继续对图像进行扫描,寻找其她区域的一种种子点,按3)~5)的环节进行4、程序设计根据下面的流程图可分为三、Matlab代码实现其实现函数的内容重要为如下部分:clc;clear all;close all;image=imread('图片1.bmp'); I=rgb2gray(image); figure,imshow(I); I=double(I); [M,N]=size(I); [y,x]=getpts; %获得区域生长起始点 x1=round(x); %横坐标取整 y1=round(y); %纵坐标取整 seed=I(x1,y1); %将生长起始点灰度值存入seed中 Y=zeros(M,N); %作一种全零与原图像等大的图像矩阵Y,作为输出图像矩阵 Y(x1,y1)=1; %将Y中与所取点相相应位置的点设立为白场 sum=seed; %储存符合区域生长条件的点的灰度值的和 suit=1; %储存符合区域生长条件的点的个数 count=1; %记录每次判断一点周边八点符合条件的新点的数目 threshold=15; %域值 while count>0 s=0; %记录判断一点周边八点时,符合条件的新点的灰度值之和 count=0; for i=1:M for j=1:N if Y(i,j)==1 if (i-1)>0 && (i+1)<(M+1) && (j-1)>0 && (j+1)<(N+1) %判断此点与否为图像边界上的点 for u= -1:1 %判断点周边八点与否符合域值条件 for v= -1:1 %u,v为偏移量 if Y(i+u,j+v)==0 && abs(I(i+u,j+v)-seed)<=threshold && 1/(1+1/15*abs(I(i+u,j+v)-seed))>0.8 %判断与否未存在于输出矩阵Y,并且为符合域值条件的点 Y(i+u,j+v)=1; %符合以上两条件即将其在Y中与之位置相应的点设立为白场 count=count+1; s=s+I(i+u,j+v); %此点的灰度之加入s中 end end end end end end end suit=suit+count; %将n加入符合点数计数器中 sum=sum+s; %将s加入符合点的灰度值总合中 seed=sum/suit; %计算新的灰度平均值 end figure,imshow(Y); 四、实验成果与分析将图片途径添加到程序中,点击运营获得figure1注意,图片是要进行解决的,我们可以在Windows自带的画板中进行编辑,将图片改成bmp格式。
1、原图2、点击figure1任意数字中的白色区域(获得种子)会获得figure2中的四种状况,分别呈现出5、6、7、8这样一来,程序运营获得成功五、总结此算法运营速度不久,但精确度不够高,由于设立的最社区域值决定了区域分割的精确性,因此会有锯齿状的边沿,这是一种缺陷同步也可以在此基本上,增添某些其她的算法,例如对彩色图像阈值的分割,这是此后学习中需要进阶和加强的之后在压缩包中将附上源程序以供参照六、参照文献[1] 柯卫,王宏力,袁宇,崔祥祥,陆敬辉. 基于区域生长法的星图中星的提取措施[J]. 传感器与微系统. (12) 2] 王章玉,杨翠微. 基于改善型区域生长法的心脏三维建模的实现[J]. 中国医疗器械杂志. (05) [3] 严深海,黄贤通,刘洋. 种子区域生长法的改善算法及其在钉螺图像提取中的应用[J]. 韶关学院学报. (10) [4] 黄谊,任毅. 基于阈值法和区域生长法的图像分割算法研究[J]. 电子测试. (10) [5] 何晖,余松林,娄亮. 一种基于区域生长法的背景图像斑点提取措施[J]. 光电技术应用. (04) [6] 周学成,罗锡文. 采用区域生长法分割根系CT图像的改善算法[J]. 农业机械学报. (12) 。
