请教MATLAB高手,给看一段程序,人脸识别中怎样对多张图像进行同一处理?

2024-11-08 11:49:36
推荐回答(1个)
回答(1):

训练阶段:
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矩阵做变换,然后识别。