❶ 请教MATLAB高手,给看一段程序,人脸识别中怎样对多张图像进行同一处理
训练阶段:
A=zeros(a,b,2); %a,b是YALE每幅图像的大小,即输入MATLAB后每幅图像的矩阵维数
for i= 1 : 15
for j= 1
img =imread(strcat('F:\renlianshujuku\Yale\yalefaces',num2str(i),'\',num2str(j),'.pgm'));
A(:,:,i-1+j) = img;
A=double(A);
end
end
Train_Number = size(A,3); %矩阵A的第三维的大小,即训练图像的个数
上面是将YALE图像库中每个人的第一张作为训练的人脸存到了A的矩阵中,直接对A矩阵做相应高斯滤波,B样条滤波,求梯度脸变换就行。
测试阶段:
C=zeros(a,b,2);
for a= 1 : 15
for b= 2 :11
unimg =mread(strcat('F:\renlianshujuku\Yale\yalefaces',num2str(a),'\',num2str(b),'.pgm'));
C(:,:,a+b-2) = unimg;
C=double(C);
end
end
Train_Number1 = size(C,3); %矩阵C的第三维的大小,即测试图像的个数
将YALE图像库中每个人除了第一幅图像以外的其余图像存到了C矩阵中,对C矩阵做变换,然后识别。
❷ 人脸识别的识别率低是为什么,要怎么写代码
您好,这样的:
基于Gabor特征提取和人工智能的人脸检测系统源代码Face Detection System
这是一个使用了Gabor特征提取和人工智能的人脸检测系统源代码关键内容
使用步骤:
拷贝所有文件到MATLAB工作目录下(确认已经安装了图像处理工具箱和人工智能工具箱)
2. 找到"main.m"文件
3. 命令行中运行它
4. 点击"Train Network",等待程序训练好样本
5. 点击"Test on Photos",选择一个.jpg图片,识别。
6. 等待程序检测出人脸区域
createffnn.m, drawrec.m, gabor.m, im2vec.m, imscan.m, loadimages.m, main.m, template1.png, template2.png, trainnet.m。