⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 face_recognition_rpca.m

📁 自己写的一个matlab小程序
💻 M
字号:
function face_recognition_rpca             % 识别过程


%w=load_database();                         
load data                                  %载入数据

ri=round(40*rand(1,1));                    %从40幅图象中随机抽取一幅作为测试图象
r=w(:,ri); 
v=w(:,[1:ri-1 ri+1:end]);                  %剩下的做为训练图象

N=20;                                       %主成分数   
 
%把训练图象零均值化
O=ones(1,size(v,2));                      
m=mean(v,2);                 
vzm=v-single(m)*single(O);                 %零均值化后的矩阵


%用传统PCA计算出初始主子空间
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

%构造佚代初始值
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');
%输出重构后的图象
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');

%调用佚代函数
 [B,C,Miu]=Die_Dai(B,C,Miu,sig,vzm,v);
   

%输出重构后的图象
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');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -