参考: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代码的更多相关文章

  1. python 读取文件夹中所有同类型的文件 并用pandas合并

    import globimport osimport pandas as pd read_path = 'D:/Data' # 要读取的文件夹的地址read_excel = glob.glob(os. ...

  2. Python按顺序读取文件夹中文件

    参考资料: https://blog.csdn.net/qq_22227123/article/details/79903116 https://blog.csdn.net/merdy_xi/arti ...

  3. python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件

    python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 python操作txt文件中 ...

  4. Matlab 读取文件夹中所有的bmp文件

    将srcimg文件下的bmp文件转为jpg图像,存放在dstimg文件夹下 str = 'srcimg'; dst = 'dstimg'; file=dir([str,'\*.bmp']); :len ...

  5. python 读取文件夹下的图片进行处理

    python的os模块中有一个listdir函数可以遍历读取文件夹下的文件. import os for filename in os.listdir(r"./file"): #l ...

  6. C++读取文件夹中所有的文件或者是特定后缀的文件

    由于经常有读取一个文件夹中的很多随机编号的文件,很多时候需要读取某些特定格式的所有文件. 下面的代码可以读取指定文件家中的所有文件和文件夹中格式为jpg的文件 参考: http://www.2cto. ...

  7. 使用ftp读取文件夹中的多个文件,并删除

    public class FTPUtils { private static final Logger LOG = LoggerFactory.getLogger(FTPUtils.class); / ...

  8. 使用java读取文件夹中文件的行数

    使用java统计某文件夹下所有文件的行数 经理突然交代一个任务:要求统计某个文件夹下所有文件的行数.在网上查了一个多小时没有解决.后来心里不爽就决定自己写一个java类用来统计文件的行数,于是花了两个 ...

  9. 用c++读取文件夹中的所有文件名

    //头文件,注意要加stdafx.h和io.h等 #include "stdafx.h" #include <io.h> #include <vector> ...

随机推荐

  1. C# 中的三个高级参数 params

    params params 关键字可以指定采用数目可变的参数的方法参数. 可以发送参数声明中所指定类型的逗号分隔的参数列表或指定类型的参数数组. 还可以不发送参数. 在方法声明中的 params 关键 ...

  2. CSS三大特性之继承性

    1.并不是所有的属性都可以继承,只有以color/font/text/line开头的属性 才可以继承. 2.在CSS的继承中,不仅仅是儿子可以继承,只要是后代都可以继承. 3.继承中的特殊性 3.1  ...

  3. 封装一个C#日志类Loger

    public class Loger { /// <summary> /// 写入日志 /// </summary> /// <param name="cont ...

  4. netty 解决粘包拆包问题

    netty server TimeServer package com.zhaowb.netty.ch4_3; import io.netty.bootstrap.ServerBootstrap; i ...

  5. 锋利的Jquery(点击显示隐藏div)

    点击显示隐藏div <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...

  6. JavaScript特效源码(1、文字特效)

    注:本文以及以下关于Javascript特效源码都是分享自JavaScript源码大全. 1.逐隐逐现的的特效 逐隐逐现的文字特效[推荐使用][适用于IE4++] (修改显示的文字后根据说明进行共2步 ...

  7. 如何在屏幕上查看命令的输出以及在Linux中写入文件

    在Linux中输出命令可以做很多事情(http://www.nanke0834.com) 您可以将命令的输出分配给变量,将其发送到另一个命令/程序以通过管道进行处理或将其重定向到文件以进行进一步分析. ...

  8. zuul隔离机制

    文章转载自:https://blog.csdn.net/farsight1/article/details/80078099 ZuulException REJECTED_SEMAPHORE_EXEC ...

  9. LintCode_13 字符串查找

    题目 对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始).如果不存在,则返回 -1. 您在真实的面 ...

  10. 服务器迁移部署OmsWeb

    绑定 基本设置 高级设置