AR faceDB 由MAT格式转换为图片格式

最近在写人脸识别的毕业论文,需要一些人脸的数据库,知名的人脸数据库有好多!我看的那篇论文它用到3个数据库,分别是ORL,AR,和Yale。

下这些数据库都比较难,,ORL这个数据库是我以前下过的,我也忘了我是怎么下载的,AR这个数据库我在数据堂这个网站上下的,但是下的是matlab的MAT文件。我想用普通的图片浏览器打开这些图片看看它们都是怎样的,于是就用matlab编了个小程序让这个mat的人脸数据转换为图片。

AR人脸数据库与程序资源

程序思想:

MAT文件包含测试和训练的图片信息,由两个图片矩阵和类标矩阵组成。我将测试人脸跟训练人脸放到两个不同的文件夹下,再对每个人的不同图片放到一个文件夹下。

人脸矩阵是一个2580*700的矩阵,2580=64*43是一张图片的分辨率。

先用reshape将这个矩阵转换为一个3维的矩阵。然后再对每张照片按类标写入到文件系统中。

程序代码

clc;clear;load('AR_database_60_43.mat');newTestFace = reshape(NewTest_DAT, 60,43,700);newTrainFace = reshape(NewTrain_DAT, 60,43,700);num = size(newTestFace,3);faceLabel = -1;for i = 1 : numif(faceLabel ~= testlabels(i))faceLabel = testlabels(i);faceNum = 0;endfaceNum = faceNum + 1;% there is no the floderif(exist(sprintf('test\\p%d',faceLabel),'dir') ~= 7)mkdir(sprintf('test\\p%d',faceLabel));endimwrite(newTestFace(:,:,i),sprintf('test\\p%d\\%d.jpg',faceLabel,faceNum ));endfaceLabel = -1;num = size(newTrainFace,3);for i = 1 : numif(faceLabel ~= trainlabels(i))faceLabel = trainlabels(i);faceNum = 0;endfaceNum = faceNum + 1;if(exist(sprintf('train\\p%d',faceLabel),'dir') == 7)mkdir(sprintf('train\\p%d',faceLabel));endimwrite(newTrainFace(:,:,i),sprintf('train\\p%d\\%d.jpg',faceLabel,faceNum ));end

一切都在发展变化,不断地向昨天告别,满怀信心地投入每一个崭新的今天。

AR faceDB 由MAT格式转换为图片格式

相关文章:

你感兴趣的文章:

标签云: