clear;clc
currentDir2 = pwd; %获取当前路径
srcDir=[currentDir2 '\Known\*.jpg'];
files = dir(srcDir); % 获取当前目录下所有扩展名为.jpg的文件
num_files = length(files); % 计算文件数量
names2={'Amelia Vega','Andre Agassi','Angelina Jolie','Ann Veneman'};
figure('Name','已知图片');
for i = 1:num_files
filename = [currentDir2 '\Known\' files(i).name]; % 获取文件名
img22{i} = imread(filename); % 读取文件
subplot(2,2,i);
imshow(img22{i});
title(names2{i});
end
currentDir1 = pwd; %获取当前路径
srcDir2=[currentDir1 '\Unknown\*.jpg'];
files2= dir(srcDir2); % 获取当前目录下所有扩展名为.jpg的文件
num_files = length(files2); % 计算文件数量
names1={'face01','face02','face03','face04'};
figure('Name','未知图片');
for i = 1:num_files
filename = [currentDir2 '\Unknown\' files2(i).name]; % 获取文件名
img11{i} = imread(filename); % 读取文件
subplot(2,2,i);
imshow(img11{i});
title(names1{i});
end
figure('Name','识别图片');
for i = 1:num_files
filename1 = [currentDir1 '\Unknown\' files2(i).name]; % 获取文件名
img1{i} = imread(filename1); % 读取文件
nums = zeros(4, 1);
for j=1:1:4
filename2 = [currentDir2 '\Known\' files(j).name]; % 获取文件名
img2{j} = imread(filename2); % 读取文件
img_height = size(img1{i}, 2);%获取图像的高
img_width = size(img1{i}, 1);%获取图像的宽
center_x = img_width / 2;
center_y = img_height / 2;
% 截取中间部分作为人脸区域
face_center1 = img1{i}(center_y - img_height/4:center_y + img_height/4, center_x - img_width/4:center_x + img_width/4);
face_center2 = img2{j}(center_y - img_height/4:center_y + img_height/4, center_x - img_width/4:center_x + img_width/4);
% 计算差异均值
diff=abs(double(face_center1)- double(face_center2));
averge=mean(diff(:));
nums(j)=averge;
end
[minValue,minIndex]=min(nums);
subplot(2,2,i);
imshow(img1{i});
disp(minIndex)
title(names2{minIndex});
end
hold off;
