?? face_recognition_rpca.m
字號(hào):
function face_recognition_rpca % 識(shí)別過(guò)程
%w=load_database();
load data %載入數(shù)據(jù)
ri=round(40*rand(1,1)); %從40幅圖象中隨機(jī)抽取一幅作為測(cè)試圖象
r=w(:,ri);
v=w(:,[1:ri-1 ri+1:end]); %剩下的做為訓(xùn)練圖象
N=20; %主成分?jǐn)?shù)
%把訓(xùn)練圖象零均值化
O=ones(1,size(v,2));
m=mean(v,2);
vzm=v-single(m)*single(O); %零均值化后的矩陣
%用傳統(tǒng)PCA計(jì)算出初始主子空間
L=single(vzm)'*single(vzm);
[V,D]=eig(L);
V=vzm*V;
V=V(:,end:-1:end-(N-1));
%求出主子空間
for i=1:N
V(:,i)=V(:,i)/sqrt(D(end-i-1,end-i-1));
end
%構(gòu)造佚代初始值
C=double(V')*double(vzm);
B=V;
Miu=m;
%
error=vzm-B*C;
mediant=median(abs(error(:)));
error2=error(:)-mediant;
sig=2.3*1.4826*median(abs(error2(:)));
subplot(221);
ri=uint8(r);
imshow(reshape(ri,112,92));title('for reconstruction ...','FontWeight','bold','Fontsize',24,'color','green');
%輸出重構(gòu)后的圖象
subplot(222);
p=r-Miu;
cv=B'*p;
br=B*cv+Miu;
e1=norm((br-r),2)
Br=uint8(br);
subplot(222);
imshow(reshape(Br,112,92));title('recon... for PCA!','FontWeight','bold','Fontsize',16,'color','red');
%調(diào)用佚代函數(shù)
[B,C,Miu]=Die_Dai(B,C,Miu,sig,vzm,v);
%輸出重構(gòu)后的圖象
subplot(223);
p=r-Miu;
cv=B'*p;
br=B*cv+Miu;
e2=norm((br-r),2)
Br=uint8(br);
subplot(223);
imshow(reshape(Br,112,92));title('recon... for RPCA!','FontWeight','bold','Fontsize',16,'color','red');
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -