循环读取文件夹中的图片matlab代码
参考:http://blog.csdn.net/guoxiaojie_415/article/details/21317323;http://blog.csdn.net/qikaihuting/article/details/70244416;http://blog.csdn.net/qq_18343569/article/details/50960254
本篇博文仅针对于循环读取指定文件夹下的图片文件,不涉及深度和层度遍历,但是本文循环读取的方式是以深度遍历为基础的,涉及到isdir函数,如果仅仅是读取某个文件夹下的某种特定扩展名文件,可以使用dir('*.m')
Function函数
function [subdirpath] = RangTraversal(strPath) maindir = strPath; //strPath是string类型的字符串
subdir = dir(maindir); //列出指定目录下所有子文件夹和文件
subdirpath = cell(, length(subdir)); for j = : length( subdir )
if (~( isequal( subdir(j).name, '.' )|| isequal( subdir(j).name, '..'))) %|| ~subdir(j).isdir //subdir.name是每个文件的完整名字,不包括路径
subdirpath{j} = fullfile(maindir, subdir(j).name); //这里的maindir表示路径,fullfile表示将路径和文件名字合起来
end
end
Matlab使用dir函数获得指定文件夹下的所有子文件夹和文件,并存放在在一种为文件结构体数组中,这个数组各结构体内容如下:
name -- 文件名
date -- 修改日期
bytes -- 文件大小
isdir -- 目录是1,不是为0
datenum -- matlab中特定的修改日期
dir函数可以有调用方式为:
dir('.')列出当前目录下所有子文件夹和文件
dir('G:\Matlab')列出指定目录下所有子文件夹和文件
dir('*.m')列出当前目录下符合正则表达式的文件夹和文件
fullfile函数作用是利用文件各部分信息创建并合成完整文件名,它的好处在于智能拼接,比如路径为C:\Users\Administrator\Desktop,文件名为1.jpg,拼接之后为C:\Users\Administrator\Desktop\1.jpg,而strcat不会自己添加\
调用RangTraversal函数
subdirpath = RangTraversal( '../sampleImages' );
filename = cell(, length(subdirpath));
path_ab = cell(, length(subdirpath));
suffix = {'.jpg', '.bmp', '.tiff', '.png'}; for i = : length(subdirpath)
if(subdirpath{i} ~= )
[path_ab{i}, filename{i}] = fileparts(subdirpath{i});
rgb = imread(subdirpath{i});//这里有一个代码隐患,前面的函数中列出了所有子文件夹和文件,并不全是图片文件
gray = rgb2gray(rgb); for j = : length(suffix) path_wr = strcat('../results/savedimages/', [filename{i}, suffix{j}]); imwrite(gray, path_wr); end end end
这段代码的作用是循环读取文件夹内的图片,然后将其灰度化,将灰度化后的图片存入新的文件夹。
fileparts在FreeMat、Matlab中,该函数用于将一个文件的完整路径中各部分提取出来。
语法格式:
[pathstr, name, ext] = fileparts(filename)
其中filename是要解析的文件的完整路径,例如:E:\games\IGI\bin\IGI.exe。fileparts将这个文件名(包含完整路径信息)各部分分别提取到四个变量中。
其中pathstr是这个文件的路径名,name是文件名,ext是包含一个点号文件的扩展名(指定了文件的类型)。
循环读取文件夹中的图片matlab代码的更多相关文章
- python 读取文件夹中所有同类型的文件 并用pandas合并
import globimport osimport pandas as pd read_path = 'D:/Data' # 要读取的文件夹的地址read_excel = glob.glob(os. ...
- Python按顺序读取文件夹中文件
参考资料: https://blog.csdn.net/qq_22227123/article/details/79903116 https://blog.csdn.net/merdy_xi/arti ...
- python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件
python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 python操作txt文件中 ...
- Matlab 读取文件夹中所有的bmp文件
将srcimg文件下的bmp文件转为jpg图像,存放在dstimg文件夹下 str = 'srcimg'; dst = 'dstimg'; file=dir([str,'\*.bmp']); :len ...
- python 读取文件夹下的图片进行处理
python的os模块中有一个listdir函数可以遍历读取文件夹下的文件. import os for filename in os.listdir(r"./file"): #l ...
- C++读取文件夹中所有的文件或者是特定后缀的文件
由于经常有读取一个文件夹中的很多随机编号的文件,很多时候需要读取某些特定格式的所有文件. 下面的代码可以读取指定文件家中的所有文件和文件夹中格式为jpg的文件 参考: http://www.2cto. ...
- 使用ftp读取文件夹中的多个文件,并删除
public class FTPUtils { private static final Logger LOG = LoggerFactory.getLogger(FTPUtils.class); / ...
- 使用java读取文件夹中文件的行数
使用java统计某文件夹下所有文件的行数 经理突然交代一个任务:要求统计某个文件夹下所有文件的行数.在网上查了一个多小时没有解决.后来心里不爽就决定自己写一个java类用来统计文件的行数,于是花了两个 ...
- 用c++读取文件夹中的所有文件名
//头文件,注意要加stdafx.h和io.h等 #include "stdafx.h" #include <io.h> #include <vector> ...
随机推荐
- 解决Mysql因内存不足启动失败的问题
参考:https://www.jb51.net/article/136432.htm 一.查看内存 free -h free -m 二.解决方法: 1.增加swap交换空间解决问题: dd if=/d ...
- Linux下常用操作
************************ 镜像操作 ************************************* screen -s name 新建 screen -r name ...
- Tensorflow入门篇
参考Tensorflow中文网(http://www.tensorfly.cn/tfdoc/get_started/introduction.html) ,写一个入门. 1.打开pyCharm,新建 ...
- React弹窗组件
原文地址 小寒的博客 这里的弹窗泛指所有的弹出组件,这些组件不受页面其他UI布局影响,处于DOM结构的顶层,绝对定位在body元素下. 这个特殊性也给它的开发提出了特殊的要求. react新版本中的c ...
- SpringBoot学习笔记(八):SpringBoot启动端口+访问路、SpringBoot配置文件yml、SpringBoot多环境区分、SpringBoot打包发布
SpringBoot启动端口+访问路径 配置文件: server.port=9090 server.context-path=/springboot 现在只能用http://127.0.0.1:909 ...
- Docker系列(十四):Kubernetes API和源码分析
Kubernetes API入门 Ku8 eye开源项目
- kafka分析
目录 1,kafka简介 2, Kafka Server 2.1,kafka中zookeeper的作用 2.2, Broker 2.2.1,Broker高性能设计 2.2.2,Broker选举机制 2 ...
- 力扣算法题—146LRU缓存机制
[题目] 运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制.它应该支持以下操作: 获取数据 get 和 写入数据 put . 获取数据 get(key) - 如果密钥 (k ...
- Mybatis-configuration 配置-settings配置
设置参数 描述 有效值 默认值 cacheEnabled 这个配置使全局的映射器启用或禁用 缓存. true | false true lazyLoadingEnabled 全局启用或禁用延迟加载.当 ...
- C#窗体随意移动
//全区域移动 const int WM_NCLBUTTONDOWN = 0xA1; const int HT_CAPTION = 0x2; [DllImport("user32.dll&q ...