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

📄 facerec.asv

📁 利用matlab编写的完整的人脸识别程序
💻 ASV
字号:
%FACE RECOGNITION SCRIPT
%First takes the last selected image
%Calls the images from database
%Applies PCA to images
%Compares the last selected image with database images and says if it is
%found at the database or not.


clc
close all


if exist('img')
    img2=double(img(:));
    if(exist('fdata.dat')==2)
        try
        load('fdata.dat','-mat');
        mtr=zeros(size(data{1,1},1),fnumber);
        for ii=1:fnumber
            mtr(:,ii)=double(data{ii,1}); %Calling the images from database
            mtr2=double(mtr)/255;
            avr = mean(mtr2')';     %taking the average of the training set
            for i=1:fnumber 
            mtr2(:,i) = mtr2(:,i) - avr;  
            
            end
            
           
        end


Lmat = mtr2'*mtr2    ;                  %Obtaining the L matrix

[V,D] = eig(Lmat);                      %eigen values(D) and eigenvectors(V) of the L matrix 

  %obtaining eigenfaces 
V = mtr2*V*(abs(D))^-0.5 ;        %This line is taken from the software karhunenloeve.m
                                  %Available at
                                  %http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=6995&objectType=file
                                  %Author:Alex Chirokov

                                    
                                    

        
        f1=V'*(img2-avr) ;           % feature vector of the new image


        
         fdata=zeros(max_class,max_class); %empty matrice
         
      
         for ii=1:fnumber
             imdata=double(data{ii,1});
             classdata=data{ii,2};
             cor=V'*(imdata-avr); % weight vector of the stored faces
        
             fdata(:,classdata)=fdata(:,classdata)+cor;
           
         end
        
         dist=zeros(max_class,1);
         for ii=1:(max_class)
             dist(ii)=norm(f1-fdata(:,ii)); 
           
         end
         
         [minf,pminf]=min(dist);
         k=minf/1000
     
         hll = waitbar(0,'CHECKING THE DATABASE...');
 for i=1:2450, 
 waitbar(i/100)
 
 end
 close(hll)
        
         if k<=6.1
             
             disp(strcat('The corresponding ID number of the face is --> ',num2str(pminf)));
              
             pause
           ldinfo
          
             return
         end
         if k>=6.1
             disp('The corresponding face does not exist at your database')
             disp('Note: Save more pictures to the group for the best recognition')
             disp(strcat('The similar of this face has an ID, number--> ',num2str(pminf)));
            
             pause
        ldinfo
           
            
            return
         end
        
         catch
                       clc
     disp('IMAGE PROCESSING IS NOT AVAILABLE')
     disp('*********************************')
     disp('Possible Reasons:                ')
     disp(' ')
     disp('1- Database is empty')
     disp('2- The size of the selected image is not suitable for processing')
     disp('3- The color or format is not matching with database')
     disp(' ')
     disp('Press any key to continue')
     pause
     clear all
     bdrfacerec
     end
         
         
     else
        clc
     disp('IMAGE PROCESSING IS NOT AVAILABLE')
     disp('*********************************')
     disp('Possible Reasons:                ')
     disp(' ')
     disp('1- Database is empty')
     disp('2- The size of the selected image is not suitable for processing')
     disp('3- The color or format is not matching with database')
    disp(' ')
    disp('Press any key to continue')
    pause
    clear all
    bdrfacerec
    end

    
end
    

⌨️ 快捷键说明

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