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

📄 facerecognize.m

📁 基于小波的人脸识别算法的matlab实现
💻 M
字号:
function [OriginI,index]=FaceRecognize(inputface,databasepath,database);
%人脸识别;inputface为待识别人脸文件的路径,database为人脸库;
%OriginI:识别出来的人在数据库中的人脸;index:识别出来的人在数据库中的序号;
load('D:\wavelet.dat','-mat');%载入W;
load('d:\database1.dat','-mat');%载入WI;
info = imfinfo(inputface,'bmp');
%读图;得到I;
I = rgb2gray(imread(inputface,'bmp'));
%计算人脸特征WI_In;
step=10;
for num=1:12
for v=1:5
    for u=1:8
        %得到对应某个k的Wk;
 %       for x1=1:info.Width
  %          for x2=1:info.Height
   %             Wk(x1,x2)=W(v,u,x1,x2);
   %        end
   %     end
        %计算变换结果WIk;
%        WIk=CalculateWIk(I,Wk,info.Width,info.Height,step);
        for x1=1:info.Width/step
            for x2=1:info.Height/step
                WI_In(num,v,u,x1,x2)=WI(num,v,u,x1,x2);
            end
        end
    end
end
end
load('d:\database.dat','-mat');%载入WI;
%与数据库中的人脸比对,找出最相像的人;
index=0;
Emin=realmax;
step=10;
for num=1:12
    %从数据库中取出一个WI_In1;
    index=0;
    Emin=realmax;
    for x1=1:info.Width/step
        for x2=1:info.Height/step
            for v=1:5
                for u=1:8
                    WI_In1(v,u,x1,x2)=WI_In(num,v,u,x1,x2);
                end
            end
        end
    end
for num1=1:12
    %从数据库中取出一个WI_Database;
    for x1=1:info.Width/step
        for x2=1:info.Height/step
            for v=1:5
                for u=1:8
                    WI_Database(v,u,x1,x2)=WI(num1,v,u,x1,x2);
                end
            end
        end
    end
    %比对,计算E;
    Enum=E(WI_In1,WI_Database,info.Width/step,info.Width/step);
    %保存最小的E及对应的inde;

    if Enum<Emin
        Emin=Enum;
        index=num1;
    end
end
end
OriginI = rgb2gray(imread(strcat(databasepath,sprintf('%04d',index)),'bmp'));

⌨️ 快捷键说明

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