• 大小: 6.44MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-24
  • 语言: Matlab
  • 标签: 人脸识别  

资源简介

采用的特征提取算法是奇异值分解,采用的分类器是BP神经网络 运行于matlab下的人脸识别的全套源码

资源截图

代码片段和文件信息

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

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        371  2008-06-07 12:28  人脸识别代码\代码运行流程.txt

     文件          0  2009-05-12 11:13  人脸识别代码\运行于matlab下.txt

     文件       5640  2008-05-17 16:05  人脸识别代码\method_svd_奇异值分解\allFeature.m

     文件        732  2007-04-08 19:57  人脸识别代码\method_svd_奇异值分解\content.m

     文件       1385  2006-06-03 03:08  人脸识别代码\method_svd_奇异值分解\createBP.m

     文件       1562  2007-03-18 20:53  人脸识别代码\method_svd_奇异值分解\createBP1.m

     文件       2188  2007-03-27 21:33  人脸识别代码\method_svd_奇异值分解\result.m

     文件       6624  2007-06-08 11:53  人脸识别代码\method_svd_奇异值分解\Start.m

     文件        335  2006-06-03 11:24  人脸识别代码\method_svd_奇异值分解\trainBP.m

     文件       1973  2008-03-04 12:55  人脸识别代码\method_svd_奇异值分解\train_test.m

     文件        371  2008-06-07 12:28  人脸识别代码\method_svd_奇异值分解\代码运行流程.txt

     文件      11382  2005-05-27 15:09  人脸识别代码\method_svd_奇异值分解\s9\1.BMP

     文件      10318  1994-04-18 14:18  人脸识别代码\method_svd_奇异值分解\s9\1.pgm

     文件      11382  2005-05-27 15:09  人脸识别代码\method_svd_奇异值分解\s9\10.BMP

     文件      10318  1994-04-18 14:07  人脸识别代码\method_svd_奇异值分解\s9\10.pgm

     文件      11382  2005-05-27 15:09  人脸识别代码\method_svd_奇异值分解\s9\2.BMP

     文件      10318  1994-04-18 14:18  人脸识别代码\method_svd_奇异值分解\s9\2.pgm

     文件      11382  2005-05-27 15:09  人脸识别代码\method_svd_奇异值分解\s9\3.BMP

     文件      10318  1994-04-18 14:18  人脸识别代码\method_svd_奇异值分解\s9\3.pgm

     文件      11382  2005-05-27 15:09  人脸识别代码\method_svd_奇异值分解\s9\4.BMP

     文件      10318  1994-04-18 14:18  人脸识别代码\method_svd_奇异值分解\s9\4.pgm

     文件      11382  2005-05-27 15:09  人脸识别代码\method_svd_奇异值分解\s9\5.BMP

     文件      10318  1994-04-18 14:18  人脸识别代码\method_svd_奇异值分解\s9\5.pgm

     文件      11382  2005-05-27 15:09  人脸识别代码\method_svd_奇异值分解\s9\6.BMP

     文件      10318  1994-04-18 14:07  人脸识别代码\method_svd_奇异值分解\s9\6.pgm

     文件      11382  2005-05-27 15:09  人脸识别代码\method_svd_奇异值分解\s9\7.BMP

     文件      10318  1994-04-18 14:07  人脸识别代码\method_svd_奇异值分解\s9\7.pgm

     文件      11382  2005-05-27 15:09  人脸识别代码\method_svd_奇异值分解\s9\8.BMP

     文件      10318  1994-04-18 14:07  人脸识别代码\method_svd_奇异值分解\s9\8.pgm

     文件      11382  2005-05-27 15:09  人脸识别代码\method_svd_奇异值分解\s9\9.BMP

............此处省略827个文件信息

评论

共有 条评论