-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathex_5points2.m
53 lines (46 loc) · 1.13 KB
/
ex_5points2.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
A= imread('E:\Desktop\xjtu.jpg');
H=rgb2gray(A);
H=double(H);
[m,n]=size(H);
for i=1:m
for j=1:n
if H(i,j)==255; %锟斤拷色锟斤拷转
H(i,j)=0;
else
H(i,j)=255;
end
end
end
N=sum(nonzeros(H))/255; %锟斤拷锟斤拷元锟侥猴拷锟斤拷锟街碉拷锟斤拷锟斤拷锟斤拷锟捷的革拷锟斤拷
x=zeros(2,N); %锟斤拷菥锟斤拷锟?为2*N
k=1; %锟斤拷莞锟斤拷锟侥碉拷K锟斤拷
for i=1:m
for j=1:n
if H(i,j)~=0
x(1,k)=-i; %锟斤拷锟斤拷萁锟斤拷懈锟街?
x(2,k)=j;
k=k+1;
end
end
end
for c=10:15
W=zeros(N,N); %锟斤拷锟斤拷锟节接撅拷锟斤拷
for i1=1:N
for i2=1:N
if norm(x(:,i1)-x(:,i2))<=c
W(i1,i2)=1;
end
%W(i,j)=10^10*exp(-((WN(1,i)-WN(1,j))^2+(WN(2,i)-WN(2,j))^2)/2); %
end
end
[C, L, D, Q, V ] = SpectralClustering(W, 4);
I1=find(C(:,1)~=0);
%x1=x(:,I1);
I2=find(C(:,2)~=0);
%x2=x(:,I2);
I3=find(C(:,3)~=0);
%x3=x(:,I3);
I4=find(C(:,4)~=0);
%figure(c),imshow(W);
figure(c),plot(x(2,I1),x(1,I1),'+',x(2,I2),x(1,I2),'*',x(2,I3),x(1,I3),'o',x(2,I4),x(1,I4),'v')
end