基于水平集gac模型图像分割报告

上传人:小** 文档编号:89507226 上传时间:2019-05-26 格式:DOC 页数:7 大小:309.50KB
返回 下载 相关 举报
基于水平集gac模型图像分割报告_第1页
第1页 / 共7页
基于水平集gac模型图像分割报告_第2页
第2页 / 共7页
基于水平集gac模型图像分割报告_第3页
第3页 / 共7页
基于水平集gac模型图像分割报告_第4页
第4页 / 共7页
基于水平集gac模型图像分割报告_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《基于水平集gac模型图像分割报告》由会员分享,可在线阅读,更多相关《基于水平集gac模型图像分割报告(7页珍藏版)》请在金锄头文库上搜索。

1、偏微分方程与图像处理(GAC的水平集方法)实验二 GAC的水平集方法一 实验目的采用GAC模型的水平集方法检测图像中对象的轮廓,以便有效地进行分割。二 原理分析推广GAC模型的水平集方法对应的PDE为: (3.31)按照上式,曲线运动将受两种“力”的支配,第一种力来自于曲率几何形变曲率运动(),不过它的强弱还要受到因子的影响。为图象I(x,y)的梯度模值,函数g(r) 是可以是任何具有单调减性的函数。因为图象梯度模值在图象的边缘附近有较大值,从而使g()取极小的值,故在图象边缘附近,该作用力将会变的很小,因此有时将边缘函数称之为边缘停止函数。常数c的作用是加速曲线向内部收缩。第二种力来自于g的

2、梯度,它是一种不论当前C的局部是在对象内部或外部,都能将曲线引向边界的“吸引力”。从而总是使曲线向着更接近于边界线的方向运动,最终达到贴近对象边界的稳定状态。由于这两种作用使曲线演化可最终达到紧靠轮廓这一稳定状态而不再继续演化。采用单边迎风方案,根据(1.76)式的数值方案实现上式:考虑到 ,可得: (2.1)其中 (2.3) 中心差分 (2.2) 向前单边差分 (2.3) 向后单边差分 (2.4)三 编程过程1准备工作1)读入图像I,将其转化为灰度图象,重新调整图象的大小为100,100。2)进行预平滑,即对图象进行高斯卷积滤波。3)计算图像梯度模值,,代入函数计算,然后计算g的梯度。4)选

3、取初始封闭曲线,使其从外部全部包住对象,简单起见这里将选取为以图像中心为圆心的封闭圆。5)根据初始化水平集。2 迭代运算1)根据(2.1)式进行迭代运算,由计算。2)每迭代5次,进行一次重新初始化,以免累计误差。具体的方法是根据当前演化得到的检测零水平集则为当前,根据当前重新初始化水平集。3)每10次观察一次零水平集,当演化曲线迭代400次,则停止迭代。3参数取值:c=34, =0.050.1, N=35, k=12.四 程序1、主程序:% 用GAC水平集演化方法检测图像轮廓close all;clear all;a=imread(3.bmp);% figure;imshow(a);a=rgb

4、2gray(a); im=imresize(a,100 100);% figure;imshow(im);imsize=size(im);im_1=double(im);% 对图像进行高斯滤波sigma=2;gauss_filter=fspecial(gaussian,3,sigma); %默认值3*3,SIGMA=0.5b=imfilter(im_1,gauss_filter,conv);% 计算图像梯度Ix,Iy和梯度模值deltIIx,Iy=gradient(b);deltI=abs(sqrt(Ix.2+Iy.2);k=2;g=exp(-deltI./k);gx,gy=gradient(

5、g);% 初始化圆,定义中心和半径center=floor(size(im)/2);radius = min(center)-8;u = init_u( imsize, center, radius);% 调用迭代函数filename = 3.bmp;m_name = filename( 1 : strfind( filename, . ) - 1 );num=400;u_new=die_dai(im,u,g,num,m_name);2、主要子程序(1)初始化水平集函数:function u = init_u( imsize, center, radius )% 初始化水平集m = imsiz

6、e( 1 ); n = imsize( 2 );u = zeros( imsize );for i = 1 : m;for j = 1 : n; distance = sqrt( sum( ( center - i, j ).2 ) ); u( i, j ) = distance - radius;endend(2)迭代计算函数:function u=die_dai(im,u,g,num,m_name)m,n=size(u);gx,gy=gradient(g);u1=u;newpic=im; for i=2:m-1 for j=2:n-1if (u(i,j)*u(i+1,j)0)|(u(i,j

7、)*u(i,j+1)0)=1 newpic(i,j)=0;endendend figure;imshow(newpic); gx,gy=gradient(g);det=0.05;c=3;dx=1;dy=1;display_it=10;for k=1:numif mod(k,5)=0 u=re_init_u( u );end%x和y方向的前向差分和后向差分diff_x_backward=( u - circshift( u, 0, 1 ) );diff_x_forward=( circshift( u, 0, -1 ) - u );diff_y_backward=( u - circshift(

8、 u, 1, 0 ) );diff_y_forward=( circshift( u, -1, 0 ) - u );du_1=g.*c.* ( (max( diff_x_forward,0 ).2 + (min( diff_x_backward,0 ).2 +(max( diff_y_forward,0 ).2 + (min( diff_y_backward,0 ).2);%计算更新u的第二部分du_2=max(gx,0) .* diff_x_backward + min(gx,0) .* diff_x_forward + max(gy,0) .* diff_y_backward + min(

9、gy,0) .* diff_y_forward ;%-%计算更新u的第三部分%中心差分diff_y_central=( circshift( u, 0, -1 ) - circshift( u, 0, 1 ) ) / 2;diff_x_central=( circshift( u, -1, 0 ) - circshift( u, 1, 0 ) ) / 2;diff_yy_central=( circshift( u, 0, -1 ) - 2*u + circshift( u, 0, 1 ) )/1;diff_xx_central=( circshift( u, -1, 0 ) - 2*u +

10、circshift( u, 1, 0 ) )/1;diff_xy_central=(circshift( u, -1, -1 ) + circshift( u, 1, 1 ) -circshift( u, -1, 1 )-circshift( u, 1, -1 ) )/4;du_3=g.*( (diff_xx_central).*(diff_y_central).2)-(2*(diff_x_central).*(diff_y_central).*(diff_xy_central)+(diff_yy_central).*(diff_x_central).2)./(diff_x_central).

11、2 +(diff_y_central).2 + eps);%计算更新的u1u1=u1 + det.*( du_1 + du_2 + du_3 );u=u1;%每隔10次,显示一幅演化图片,并编号,存入当前路径if mod(k,display_it)=0 fprintf( 1, %dn, k ); disp( Displaying segmented image ); newpic=im;for i=1:m-1 for j=1:n-1if (u(i,j)*u(i+1,j)0)|(u(i,j)*u(i,j+1)0 u(i,j)=min(dist);else u(i,j)=-min(dist);en

12、dendend五 实验结果分析以下为实验结果: Fig.1 Fig.2 Fig.3 Fig.4 Fig.5 Fig.6 Fig.7 Fig.8Fig.9 Fig.10 Fig.11上面的图是每迭代40次选取一副图象,直至演化至稳态的结果(Fig.1为调整大小并滤波后的图)。注意:1曲线最终演化基本稳定在对象边界。2由于c 选择过小,使曲线在对象凹陷部分(k0)继续运动的作用力()不足,但c过大又会使曲线穿透边界,因此c的选择要合适。3重新初始化间隔不要过大,会积累误差。4中k值选取过大,导致函数g 的下降速度过于平缓,不能在对象边缘有效的停止。5 时间步长delt_t选取过大,就会影响效果。对不同的参数进行验证,实验结果表明各参数较为合理的值的范围:c:5 10delt_t: 0.05 0.1re_init:5 20k:0.0010.005六 实验小结:通过本次实验,可以看到GAC(测地线活动轮廓模型)在图象分割中的理论运用。其数学思想是通过最小化一个能量泛函来实现的。这与前面所说的演化有些类似。只是在选取时采用什么

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号