clear all
close all
clc
th=0.5;k=1;
image=imread('pic.jpg');
pix=im2bw(image,th);
imshow(image)
v=-1.*pix+1;
I=-1.*v+1;
figure
imshow(v)
[x y]=size(I);
for i=2:x-1
for j=2:y-1
if I(i,j) > 0
k=k+1;
I(i,j)=k;
if (I(i-1,j-1)>0)&&(I(i-1,j)>0)&&(I(i-1,j+1)>0)&&(I(i,j-1)>0) %m1>0, m2>0, m3>0, m4>0
I(i,j)=I(i-1,j-1); I(i-1,j)=I(i-1,j-1); I(i-1,j+1)=I(i-1,j-1); I(i,j-1)=I(i-1,j-1);
elseif (I(i-1,j-1)>0)&&(I(i-1,j)>0)&&(I(i-1,j+1)==0)&&(I(i,j-1)>0) %m1>0, m2>0, m3=0, m4>0
I(i,j)=I(i-1,j-1); I(i-1,j)=I(i-1,j-1); I(i,j-1)=I(i-1,j-1); %k0=k1=k2=k4
elseif (I(i-1,j-1)>0)&&(I(i-1,j)>0)&&(I(i-1,j+1)==0)&&(I(i,j-1)==0) %m1>0, m2>0, m3=0, m4>0
I(i,j)=I(i-1,j-1); I(i-1,j)=I(i-1,j-1); %k0=k1=k2
elseif (I(i-1,j-1)>0)&&(I(i-1,j)>0)&&(I(i-1,j+1)>0)&&(I(i,j-1)==0) %m1>0, m2>0, m3>0, m4=0
I(i,j)=I(i-1,j-1); I(i-1,j)=I(i-1,j-1); I(i-1,j+1)=I(i-1,j-1); %k0=k1=k2=k3
elseif (I(i-1,j-1)>0)&&(I(i-1,j)==0)&&(I(i-1,j+1)==0)&&(I(i,j-1)==0) %m1>0, m2=0, m3=0, m4=0
I(i,j)=I(i-1,j-1); %k0=k1
elseif (I(i-1,j-1)>0)&&(I(i-1,j)==0)&&(I(i-1,j+1)>0)&&(I(i,j-1)==0) %m1>0, m2=0, m3>0, m4=0
I(i,j)=I(i-1,j-1); I(i-1,j+1)=I(i-1,j-1); %k0=k1=k3
elseif (I(i-1,j-1)>0)&&(I(i-1,j)==0)&&(I(i-1,j+1)==0)&&(I(i,j-1)>0) %m1>0, m2=0, m3=0, m4>0
I(i,j)=I(i-1,j-1); I(i,j-1)=I(i-1,j-1); %k0=k1=k4
elseif (I(i-1,j-1)>0)&&(I(i-1,j)==0)&&(I(i-1,j+1)>0)&&(I(i,j-1)>0) %m1>0, m2=0, m3>0, m4>0
I(i,j)=I(i-1,j-1); I(i-1,j+1)=I(i-1,j-1); I(i,j-1)=I(i-1,j-1); %k0=k1=k3=k4
elseif (I(i-1,j-1)==0)&&(I(i-1,j)>0)&&(I(i-1,j+1)>0)&&(I(i,j-1)>0) %m1=0, m2>0, m3>0, m4>0
I(i,j)=I(i-1,j); I(i-1,j+1)=I(i-1,j); I(i,j-1)=I(i-1,j); %k0=k2=k3=k4
elseif (I(i-1,j-1)==0)&&(I(i-1,j)>0)&&(I(i-1,j+1)>0)&&(I(i,j-1)==0) %m1=0, m2>0, m3>0, m4=0
I(i,j)=I(i-1,j); I(i-1,j+1)=I(i-1,j); %k0=k2=k3
elseif (I(i-1,j-1)==0)&&(I(i-1,j)>0)&&(I(i-1,j+1)==0)&&(I(i,j-1)==0) %m1=0, m2>0, m3=0, m4=0
I(i,j)=I(i-1,j); %k0=k2
elseif (I(i-1,j-1)==0)&&(I(i-1,j)>0)&&(I(i-1,j+1)==0)&&(I(i,j-1)>0) %m1=0, m2>0, m3=0, m4>0
I(i,j)=I(i-1,j); I(i,j-1)=I(i-1,j); %k0=k2=k4
elseif (I(i-1,j-1)==0)&&(I(i-1,j)==0)&&(I(i-1,j+1)>0)&&(I(i,j-1)>0) %m1=0, m2=0, m3>0, m4>0
I(i,j)=I(i-1,j+1); I(i,j-1)=I(i-1,j+1); %k0=k3=k4
elseif (I(i-1,j-1)==0)&&(I(i-1,j)==0)&&(I(i-1,j+1)>0)&&(I(i,j-1)>0) %m1=0, m2=0, m3>0, m4=0
I(i,j)=I(i-1,j+1); %k0=k3
elseif (I(i-1,j-1)==0)&&(I(i-1,j)==0)&&(I(i-1,j+1)==0)&&(I(i,j-1)>0) %m1=0, m2=0, m3>0, m4=0
I(i,j)=I(i,j-1);
end
if (I(i-1,j-1)>0)||(I(i-1,j)>0)||(I(i-1,j+1)>0)||(I(i,j-1)>0)
k=k-1;
end
end
end
end
for i=x-1:-1:2
for j=y-1:-1:2
if I(i,j) > 0
if (I(i-1,j-1)>0)&&(I(i+1,j-1)>0)&&(I(i,j+1)>0) %m2>0, m4>0, m5>0
I(i,j)=I(i+1,j-1); I(i-1,j-1)=I(i+1,j-1); I(i,j+1)=I(i+1,j-1); %k0=k2=k4=k5
elseif (I(i-1,j-1)>0)&&(I(i+1,j-1)>0)&&(I(i,j+1)>0) %m2>0, m4>0, m5=0
I(i,j)=I(i+1,j-1); I(i-1,j-1)=I(i+1,j-1); %k0=k2=k4
elseif (I(i-1,j-1)>0)&&(I(i+1,j-1)==0)&&(I(i,j+1)>0)&&(I(i,j-1)>0) %m2>0, m4=0, m5>0, m6>0
I(i,j)=I(i,j-1); I(i-1,j-1)=I(i,j-1); I(i,j+1)=I(i,j-1); %k0=k2=k5=k6
elseif (I(i-1,j-1)>0)&&(I(i+1,j-1)==0)&&(I(i,j+1)==0)&&(I(i,j-1)>0) %m2>0, m4=0, m5=0, m6>0
I(i,j)=I(i,j-1); I(i-1,j-1)=I(i,j-1); %k0=k2=k6
elseif (I(i-1,j-1)==0)&&(I(i+1,j-1)>0)&&(I(i,j+1)>0) %m2=0, m4>0, m5>0
I(i,j)=I(i+1,j-1); I(i,j+1)=I(i+1,j-1); %k0=k4=k5
elseif (I(i-1,j-1)==0)&&(I(i+1,j-1)>0)&&(I(i,j+1)==0) %m2=0, m4>0, m5=0
I(i,j)=I(i+1,j-1); %k0=k4
elseif (I(i-1,j-1)==0)&&(I(i+1,j-1)==0)&&(I(i,j+1)>0)&&(I(i,j-1)>0) %m2=0, m4=0, m5>0, m6>0
I(i,j)=I(i,j-1); I(i,j+1)=I(i,j-1); %k0=k5=k6
elseif (I(i-1,j-1)==0)&&(I(i+1,j-1)==0)&&(I(i,j+1)==0)&&(I(i,j-1)>0) %m2=0, m4=0, m5=0, m6>0
I(i,j)=I(i,j-1); %k0=k6
end
end
end
end
figure
imshow(I)
I
- 1
- 2
- 3
- 4
前往页