• 大小: 7.79MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-02
  • 语言: Matlab
  • 标签: 人脸识别  MATLAB  

资源简介

基于BP神经网络的人脸识别MATLAB实现,包括软件界面,采用ORL人脸库,是本科毕设,比较粗糙,供参考!

资源截图

代码片段和文件信息

%读入人脸图片,并将其转换成为灰度矩阵然后将灰度矩阵进行切割,再用SVD分解,并提取图片特征
%返回参数
%feature为指向装载后的数据文件的变量
%num的值为特征值向量的第几维
%函数声明
function [feature featureNumber] = allFeature(num)

%用户输入特征维数数目
panDuan = 1;
while panDuan 
    featureNumber = input(‘请输入特征维数(仅限于8 16,24 32,48,64,80):‘);
    %如果输入的是8.16.24.32.48.64.80则继续执行代码
    if(featureNumber == 8 || featureNumber == 16 || featureNumber == 24|| featureNumber == 32 || featureNumber == 48 || featureNumber == 64 || featureNumber == 80 )
        panDuan = 0;
        disp(‘开始装载图像文件请等待.......‘)
    %如果输入的是其它数字提示输入有误请用户重新输入
    else
        fprintf(‘你输入的不是这5个数中的任何一个请重新输入!\n\n‘)
    end
end
%得出图片的路径,并自动读入每张图片
dir = [‘\1.bmp ‘
    ‘\2.bmp ‘
    ‘\3.bmp ‘
    ‘\4.bmp ‘
    ‘\5.bmp ‘
    ‘\6.bmp ‘
    ‘\7.bmp ‘
    ‘\8.bmp ‘
    ‘\9.bmp ‘
    ‘\10.bmp‘];
for x=1:40
    %将数字转换成字符,便于把两个字符连接,组成图片的完整路径
    a = int2str(x);
    b = ‘s‘;
    d = [b a];
    for i=1:10
        %得到每张图片的文件名
        e = [d dir(i1:7)];
        % 将图片转化成为灰度矩阵
        M = double(imread(e));
        %如果用户输入的是8则执行下段代码把数据处理得到8维的特征向量
        if (featureNumber == 8)
            for j=1:4
                for k=1:2
                    %将图片的灰度矩阵划分成8块小矩阵
                    temp=M((j-1)*28+1:j*28(k-1)*46+1:k*46);
                    %对每个小矩阵进行SVD变换
                    [utemp1v]=svd(temp);
                    %提取一个的SVD系数作为特征值
                    temp2=temp1(numnum);
                    %得到所有图片的特征矩阵
                    feature((x-1)*10+i(j-1)*2+k)=temp2;
                end
            end
        end
        %如果用户输入的是16则执行下段代码把数据处理得到16维的特征向量
        if (featureNumber == 16)
            for j=1:4
                for k=1:4
                    %将图片的灰度矩阵划分成16块小矩阵
                    temp=M((j-1)*28+1:j*28(k-1)*23+1:k*23);
                    %对每个小矩阵进行SVD变换
                    [utemp1v]=svd(temp);
                    %提取一个的SVD系数作为特征值
                    temp2=temp1(numnum);
                    %得到所有图片的特征矩阵
                    feature((x-1)*10+i(j-1)*4+k)=temp2;
                end
            end
        end
        %如果用户输入的是24则执行下段代码把数据处理得到16维的特征向量
        if (featureNumber == 24)
            for j=1:6
                for k=1:4
                    %将图片的灰度矩阵划分成24块小矩阵
                    temp=M((j-1)*18+1:j*18(k-1)*23+1:k*23);
                    %对每个小矩阵进行SVD变换
                     [utemp1v]=svd(temp);
                    %提取一个的SVD系数作为特征值
                    temp2=temp1(numnum);
                    %得到所有图片的特征矩阵
                    feature((x-1)*10+i(j-1)*4+k)=temp2;
                end
            end
        end

        %如果用户输入的是32则执行下段代码把数据处理得到32维的特征向量
        if (featureNumber == 32)
            for j=1:8
                for k=1:4
                    %将图片的灰度矩阵划分成32块小矩阵
                    temp=M((j-1)*14+1:j*14(k-1)*23+1:k*23);
                    %对每个小矩阵进行SVD变换
                    [utemp1v]=svd(temp);
                    %提取最大的SVD系数作为特征值
               

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-05-05 22:22  BP神经网络人脸识别MATLAB\
     文件      117180  2019-05-05 22:18  BP神经网络人脸识别MATLAB\Face_recognition.fig
     文件       27950  2019-05-05 22:18  BP神经网络人脸识别MATLAB\Face_recognition.m
     文件        1136  2019-04-17 17:50  BP神经网络人脸识别MATLAB\Main.m
     文件        2013  2019-04-17 10:58  BP神经网络人脸识别MATLAB\train_test_spilt.m
     文件         354  2019-05-05 20:32  BP神经网络人脸识别MATLAB\trainBP.m
     文件        5639  2019-04-17 09:14  BP神经网络人脸识别MATLAB\allFeature.m
     文件         611  2019-04-17 13:35  BP神经网络人脸识别MATLAB\changePara.m
     文件       10318  1994-04-18 14:07  BP神经网络人脸识别MATLAB\s9\9.pgm
     文件        3960  2019-04-17 17:17  BP神经网络人脸识别MATLAB\createBP.m
     文件         166  2019-02-25 19:59  BP神经网络人脸识别MATLAB\face20.txt
     文件        2276  2019-05-05 21:09  BP神经网络人脸识别MATLAB\result.m
     目录           0  2019-04-15 13:37  BP神经网络人脸识别MATLAB\s1\
     文件       11382  2005-05-27 15:04  BP神经网络人脸识别MATLAB\s1\1.BMP
     文件       10318  1994-04-18 14:17  BP神经网络人脸识别MATLAB\s1\1.pgm
     文件       11382  2005-05-27 15:04  BP神经网络人脸识别MATLAB\s1\10.BMP
     文件       10318  1994-04-18 14:07  BP神经网络人脸识别MATLAB\s1\10.pgm
     文件       11382  2005-05-27 15:04  BP神经网络人脸识别MATLAB\s1\2.BMP
     文件       10318  1994-04-18 14:17  BP神经网络人脸识别MATLAB\s1\2.pgm
     文件       11382  2005-05-27 15:04  BP神经网络人脸识别MATLAB\s1\3.BMP
     文件       10318  1994-04-18 14:17  BP神经网络人脸识别MATLAB\s1\3.pgm
     文件       11382  2005-05-27 15:04  BP神经网络人脸识别MATLAB\s1\4.BMP
     文件       10318  1994-04-18 14:17  BP神经网络人脸识别MATLAB\s1\4.pgm
     文件       11382  2005-05-27 15:04  BP神经网络人脸识别MATLAB\s1\5.BMP
     文件       10318  1994-04-18 14:17  BP神经网络人脸识别MATLAB\s1\5.pgm
     文件       11382  2005-05-27 15:04  BP神经网络人脸识别MATLAB\s1\6.BMP
     文件       10318  1994-04-18 14:07  BP神经网络人脸识别MATLAB\s1\6.pgm
     文件       11382  2005-05-27 15:04  BP神经网络人脸识别MATLAB\s1\7.BMP
     文件       10318  1994-04-18 14:07  BP神经网络人脸识别MATLAB\s1\7.pgm
     文件       11382  2005-05-27 15:04  BP神经网络人脸识别MATLAB\s1\8.BMP
     文件       10318  1994-04-18 14:07  BP神经网络人脸识别MATLAB\s1\8.pgm
............此处省略825个文件信息

评论

共有 条评论