1 简介
基于全局和局部图像信息的水平集模型(LGIF模型),其基本思想是:在演化过程中,既利用图像的全局信息,也利用图像的局部信息来驱动曲线的演化,LGIF模型其实就是将LIF模型和GIF模型(ACM with Global Image Fitting model)两者的优点结合而形成的新模型,其中LIF模型表示图像的局部信息项,GIF模型表示图像的全局信息项。因而,LGIF模型既具有LIF模型的优点,利用图像的局部领域信息,可以在一定程度上处理灰度不均匀的图像;也具有GIF模型的优点,运用图像的全局信息,使得LGIF模型对初始轮廓的位置不敏感。其中,LIF模型的能量泛函定义如下:
编辑
编辑
编辑
编辑
编辑
编辑
2 部分代码
function Ig=gauss(I,ks,sigma2)%private function: gauss (by Guy Gilboa):% Ig=gauss(I,ks,sigma2)% ks - kernel size (odd number)% sigma2 - variance of Gaussian[Ny,Nx]=size(I);hks=(ks-1)/2; % half kernel sizeif (Ny<ks) % 1d convolutin x=(-hks:hks); flt=exp(-(x.^2)/(2*sigma2)); % 1D gaussian flt=flt/sum(sum(flt)); % normalize % expand x0=mean(I(:,1:hks)); xn=mean(I(:,Nx-hks+1:Nx)); eI=[x0*ones(Ny,ks) I xn*ones(Ny,ks)]; Ig=conv(eI,flt); Ig=Ig(:,ks+hks+1:Nx+ks+hks); % truncate tails of convolution else %% 2-d convolution x=ones(ks,1)*(-hks:hks); y=x'; flt=exp(-(x.^2+y.^2)/(2*sigma2)); %2D gaussian flt=flt/sum(sum(flt)); % normalize % expand if (hks>1) xL=mean(I(:,1:hks)')'; xR=mean(I(:,Nx-hks+1:Nx)')'; else xL=I(:,1); xR=I(:,Nx); end eI=[xL*ones(1,hks) I xR*ones(1,hks)]; if (hks>1) xU=mean(eI(1:hks,:)); xD=mean(eI(Ny-hks+1:Ny,:)); else xU=eI(1,:); xD=eI(Ny,:); end eI=[ones(hks,1)*xU; eI; ones(hks,1)*xD]; Ig=conv2(eI,flt,'valid');end
3 仿真结果
编辑
编辑
4 参考文献
[1]张辉. 基于改进型水平集的医学图像分割研究[D]. 扬州大学, 2017.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
5 代码下载
编辑