⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cv4.m

📁 水平集分割算法的C-V模型
💻 M
字号:
function cv4(name,s)
% three images are provided for test
img=imread(name); t=s;    % example that CV model works well
U=img(:,:,1);
[nrow,ncol] =size(U);
ic=nrow/2;jc=ncol/2;r=15;
phi1= sdf2circle(nrow,ncol,ic,jc,r);
phi2= sdf2circle2(nrow,ncol,ic,jc,r);
phi3= sdf2circle3(nrow,ncol,ic,jc,r);
phi4= sdf2circle4(nrow,ncol,ic,jc,r);
delta_t = 0.1;
lambda_1=1;lambda_2=1;
nu=0;h = 1;epsilon=1;
mu = 0.01*255*255;  % tune this parameter for different images
I=double(U);
imagesc(I,[0 255]);colormap(gray)
hold on;
plotLevelSet(phi1,0,'r');
plotLevelSet(phi2,0,'b');
plotLevelSet(phi3,0,'g');
plotLevelSet(phi4,0,'c');
numter =1;
for k=1:t,
    phi1=evolution_cv(I, phi1, mu, nu, lambda_1, lambda_2, delta_t, epsilon, numter); % update level set function
    phi2=evolution_cv(I, phi2, mu, nu, lambda_1, lambda_2, delta_t, epsilon, numter);
    phi3=evolution_cv(I, phi3, mu, nu, lambda_1, lambda_2, delta_t, epsilon, numter); 
    phi4=evolution_cv(I, phi4, mu, nu, lambda_1, lambda_2, delta_t, epsilon, numter);
    if mod(k,2)==0    %%%%%%  显示水平集变化过程
        pause(.3);
        imagesc(I,[0 255]);colormap(gray)
        hold on;
        plotLevelSet(phi1,0,'r');
        plotLevelSet(phi2,0,'b');
        plotLevelSet(phi3,0,'g');
        plotLevelSet(phi4,0,'c');
    end    
end;
% figure;plotLevelSet(phi,0,'g');hold off;
figure;
subplot(2,2,1);
imshow(I,[]);title('原图像');
showtu4(phi1,phi2,phi3,phi4,nrow,ncol);          %%%  显示分割前后的图像
showbianyuan4(phi1,phi2,phi3,phi4,nrow,ncol);    %%%%   边缘提取

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -