%这里是主函数:命名为readImg.m;

clc;clear;
%---read_image;
filepath = 'G:\人脸重建\data\src_all\';%图片路径可以根据自己需要修改;
pic = '*jpg';%图片格式,根据自己的图片格式进行修改;
database = build_database_src(filepath,pic);

%build_database_src.m子函数;

function database = build_database_src(rt_data_dir,suffix)
fprintf('dir the database');
subfolders = dir(rt_data_dir);

database = []; database.imnum = ;
database.cname = {};
database.label = [];
database.path = [];
database.nclass = ;
label = ; k = ;
src_x = [];
src_y = []; for ii = : length(subfolders)
subname = subfolders(ii).name; if ~strcmp(subname,'.') & ~strcmp(subname,'..') database.nclass = database.nclass + ;
database.cname{database.nclass} = subname; frames = dir(fullfile(rt_data_dir,subname,suffix));
c_num = length(frames); database.imnum = database.imnum + c_num;
database.label = [database.label;ones(c_num,) * database.nclass]; label = numel(database.cname); for jj = : c_num
fprintf('folder : %d , num : %d \n',ii - ,jj); kk1 = frames(jj).name;%显示具体图片名;
c_path = fullfile(rt_data_dir,subname,frames(jj).name);
database.path = [database.path,c_path];
img = imread(database.path);%读取图片;
im = imresize(img,[,]);%设置图片大小; if(length(size(im)) == )%如果是彩色图进行灰度化(根据个人需要);
gray = rgb2gray(im);
else
gray = im;
end gray = double(gray) / ;%对图片数据做归一化(根据个人需要);
database.path = []; src_x(:,:,k) = gray;%存储图像数据;
src_y(,k) = label;%给数据加标签;
k = k + ;
end
end end %保存转化好的.mat文件;
file = ['src_x.mat'];
save(file,'src_x','-mat');
file = ['src_y.mat'];
save(file,'src_y','-mat'); end

我的路径:G:\人脸重建\data\src_all。运行程序可以看到生成两个.mat文件。

参考:https://blog.csdn.net/yongjiankuang/article/details/72824081

matlab实现一次性实现多个文件夹图片转化为.mat文件的更多相关文章

  1. MATLAB读取一个文件夹下的多个子文件夹中的多个指定格式的文件

    MATLAB需要读取一个文件夹下的多个子文件夹中的指定格式文件,这里以读取*.JPG格式的文件为例 1.首先确定包含多个子文件夹的总文件夹 maindir = 'C:\Temp Folder'; 2. ...

  2. matlab从文件夹名中获得该文件夹下所图像文件名

    function [s,nameC]=get_FileNameFromFolderPath(path) % 函数调用:[s,nameC]=get_FileNameFromFolderPath(path ...

  3. matlab遍历文件制作自己的数据集 .mat文件

    原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/9115788.html 看到深度学习里面的教学动不动就是拿MNIST数据集,或者是IMGPACK ...

  4. 用字符流实现每个文件夹中创建包含所有文件信息的readme.txt

    package com.readme; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; i ...

  5. 在文件夹中 的指定类型文件中 查找字符串(CodeBlocks+GCC编译,控制台程序,仅能在Windows上运行)

    说明: 程序使用 io.h 中的 _findfirst 和 _findnext 函数遍历文件夹,故而程序只能在 Windows 下使用. 程序遍历当前文件夹,对其中的文件夹执行递归遍历.同时检查遍历到 ...

  6. META-INF文件夹是干啥的,META-INF文件夹的作用, META-INF文件夹能删吗

    今天有人问到 META-INF文件夹是干啥的,META-INF文件夹的作用, META-INF文件夹能删吗,还有项目的META-INF下面一般会有个MANIFEST.MF 文件,都是干啥的. 百度搜了 ...

  7. iOS-iOS 获取蓝色文件夹图片

    Xcode创建的iOS项目内存在两种文件夹:Group(黄色, 伪文件夹) 和Folder(蓝色, 真文件夹): Group: Folder: Images.xcassets或Group文件夹内的PN ...

  8. android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件

    简介 XStream 是一个开源项目,一套简单实用的类库,用于序列化对象与 XML 对象之间的相互转换. 将 XML 文件内容解析为一个对象或将一个对象序列化为 XML 文件. 1.下载工具 xstr ...

  9. Web 在线文件管理器学习笔记与总结(15)剪切文件夹 (16)删除文件夹

    (15)剪切文件夹 ① 通过rename($oldname,$newname) 函数实现剪切文件夹的操作 ② 需要检测目标文件夹是否存在,如果存在还要检测目标目录中是否存在同名文件夹,如果不存在则剪切 ...

随机推荐

  1. 第十八篇:java操作Excel要处理和分辨的几个概念

    工具:org.apache.poiExcel格式:.xls(03,存储量小些):.xlsx(07以上) 首先明确这点:给你一个装满数据的Excel,并不能保证每行都有数据,每一行并不能保证每个单元格都 ...

  2. idea 提交拉取代码,解决冲突

    继上两篇文章,本篇重点.所用的都是项目实际操作 提交代码 新建文件提交代码 idea自动提醒你是否加入到本地缓存(点击add就是添加如果不添加提交不上去事后需要手动提交 ps:快捷键是ctrl+alt ...

  3. 面试系列25 dubbo的spi思想是什么

    spi,简单来说,就是service provider interface,说白了是什么意思呢,比如你有个接口,现在这个接口有3个实现类,那么在系统运行的时候对这个接口到底选择哪个实现类呢?这就需要s ...

  4. opencv编译:opencv 3.4.1 编译 contrib模块,增加人脸识别

    start cmake-gui select the opencv source code folder and the folder where binaries will be built (th ...

  5. python3 selenium 超时停止加载,并且捕捉异常, 进行下一步【亲测有效】

    from selenium import webdriver import os import re class GetPage: def __init__(self, url_path): self ...

  6. html--浮动高度塌陷问题

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  7. mysql 多表join

    两个表可以简单地写为 select a.,b. from a left join b on a.id =b.id; 三个以上 select a.,b. from a left join b on a. ...

  8. [转]Java四种线程池的使用

    Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程.newFixe ...

  9. Java事件监听机制与观察者设计模式

    一. Java事件监听机制 1. 事件监听三要素: 事件源,事件对象,事件监听器 2. 三要素之间的关系:事件源注册事件监听器后,当事件源上发生某个动作时,事件源就会调用事件监听的一个方法,并将事件对 ...

  10. php中date() 函数

    实例 格式化本地日期和时间,并返回格式化的日期字符串: <?php // Prints the day echo date("l") . "<br>&q ...