资源简介

本代码实现了cv模型用于图像分割,共享学习!

资源截图

代码片段和文件信息


%%% “C-V”模型(Active contour without edge)

clear all;
close all;
clc;

%Img=imread(‘synthetic.png‘);
%Img = imread(‘europe_night_ceshi.jpg‘); %%%%%%好用
%Img = imread(‘noisyStar_SNR_20_to_10.bmp‘); %%%%%%好用,效果很好
%Img = imread(‘2.bmp‘); %%%%%%好用,效果很好,选取合适的系数nu
%Img = imread(‘synthetic1.png‘);  %%%%%%好用,效果很好

% I = imread(‘01.tif‘);

Img = imread(‘2.bmp‘);


% imshow(I)
% rect = getrect(gcf);
% Img = I(rect(2):rect(2)+rect(4)rect(1):rect(1)+rect(3));

% imshowMy(IM)

% Img=imread(‘s:\b.tif‘);
% Img=double(Img);
Img=double(rgb2gray(Img));
Img=imresize(Img[8080]);
figure(1); imshow(uint8(Img));

[nxny]=size(Img);
%%- 将初始曲线C设置为圆

%ic=50.5;         
%jc=20.5;

ic=floor(nx/2);         % 计算初始圆形曲线的圆心
jc=floor(ny/2);
r=25;
%r=ic/1.2;                 % 圆形曲线的半径

%%- 初始化u为距离函数
u = zeros([nxny]);     
for i=1:nx
    for j=1:ny
        u(ij)= r-sqrt((i-ic).^2+(j-jc).^2);
    end
end
%%- 将初始圆形曲线叠加在原始图片上
figure(2);              
imshow(uint8(Img));
hold on;
[ch] = contour(u[0 0]‘r‘);


%%- 初始化参数
epsilon=1.0;            % Heaviside函数参数设置
 
%%- 对于不同的图片,nu的差异很大,数值太小时,轮廓线容易散。
nu=0.1*255*255;  %%%% europe_night_ceshi.jpg
%nu=0.01*255*255;   %%%%  noisyStar_SNR_20_to_10.bmp
%nu=0.1*255*255;    %%%%  2.bmp
%nu=250;   

评论

共有 条评论