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 : num
    if(faceLabel ~= testlabels(i))
        faceLabel = testlabels(i);
        faceNum = 0;
    end
    faceNum = faceNum + 1;
    % there is no the floder
    if(exist(sprintf('test\\p%d',faceLabel),'dir') ~= 7)
        mkdir(sprintf('test\\p%d',faceLabel));
    end   
    imwrite(newTestFace(:,:,i),sprintf('test\\p%d\\%d.jpg',faceLabel,faceNum ));
end

faceLabel = -1;
num = size(newTrainFace,3);
for i = 1 : num
    if(faceLabel ~= trainlabels(i))
        faceLabel = trainlabels(i);
        faceNum = 0;
    end
    faceNum = faceNum + 1;
    if(exist(sprintf('train\\p%d',faceLabel),'dir') == 7)
        mkdir(sprintf('train\\p%d',faceLabel));
    end   
    imwrite(newTrainFace(:,:,i),sprintf('train\\p%d\\%d.jpg',faceLabel,faceNum ));
end



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值