-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmain.m
64 lines (59 loc) · 1.47 KB
/
main.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
52
53
54
55
56
57
58
59
60
61
62
63
64
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=1:15
W=zeros(N,N); %�����ڽӾ���
for i1=1:N
for i2=1:N
if norm(x(:,i1)-x(:,i2))<=12
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);
x_sort=[x(:,I1),x(:,I2),x(:,I3),x(:,I4)];
for i1=1:N
for i2=1:N
if norm(x_sort(:,i1)-x_sort(:,i2))<=10
W_sort(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
figure(20),imshow(W);
title('adjacent matrix');
figure(c),imshow(W_sort);
title('sorted adjacent matrix')
figure(c+20),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')
title('classified points')
end