clear all
load Sandiego100_100;
s=40;
[m,n,q]=size(Sandiego100_100);
X=reshape(Sandiego100_100,m*n,q);
[coeff,score,latent] = pca(X);
score=score(:,1:11);
X=score./max(max(score));
Idx=kmeans(X,5);
for k=1:5
N=0;
image=[];
for i=1:(m*n)
if(Idx(i)==k)
image=[image;X(i,:)];
N=N+1;
V(N)=i;
end
end
X3=image.';
K=kernel_gauss(X3,s);
One_N=ones(N)./(N);
Kc = K - One_N*K - K*One_N + One_N*K*One_N;
inv_Kc=pinv(Kc);
I=ones(1,N);
for j=1:N
Kr=(K(j,:)-mean(K(j,:),2)*I)';
Ku=(mean(K)-mean(mean(K),2)*I)';
KRX(j)=(Kr-Ku)'*inv_Kc*(Kr-Ku);
end
for a=1:N
value(V(a))=KRX(a);
end
end
resultIm=reshape(value,m,n);
threshold=mean(value);
decision_im = double(resultIm > threshold*2.5);
decision_im = decision_im - bwareaopen(decision_im,25);
decision_im=reshape(decision_im,m,n);
imshow(decision_im);