PCA主成分分析图像数据降维代码求教!
我在网上找了一个PCA图像降维的代码,但是不知道怎么在代码中使用自己的图片,求教各位大神。下面附上代码
clc,clear;
load trees;
figure;
subplot(2,1,1);
image(X); colormap(map);
title('初始图像');
[m,n]=size(X);
A=X(:,:);
M=mean(A);
for j=1:n
for i=1:m
Z(i,j)=A(i,j)-M(1,j);%中心化矩阵
end
end
XF=cov(Z);%求协方差矩阵
[V,D]=eig(XF);%V特征向量,D是特征值
DD=diag(D);
sortDD=flipud(DD);%特征值由大到小排列
%sortDD=sort(DD,'descend');
%sortV=fliplr(V);
dsum=sum(sortDD);
dsum_extract=0;
p=0;
while(dsum_extract/dsum<0.9)
p=p+1;
dsum_extract=sum(sortDD(1:p));
end
[mV,mD]=eigs(XF,p);%选出p个较大的特征向量
FD=mV'*Z;%最后的矩阵
subplot(2,1,2);
imshow(FD,[]);
title('降维后的图像');