zoukankan      html  css  js  c++  java
  • 循环读取文件夹中的图片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(1, length(subdir));
    
    for j = 1 : 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:UsersAdministratorDesktop,文件名为1.jpg,拼接之后为C:UsersAdministratorDesktop1.jpg,而strcat不会自己添加

    调用RangTraversal函数

    subdirpath  = RangTraversal( '../sampleImages' );
    filename = cell(1, length(subdirpath));
    path_ab = cell(1, length(subdirpath));
    suffix = {'.jpg', '.bmp', '.tiff', '.png'};
    
    for i = 1 : length(subdirpath)
       if(subdirpath{i} ~= 0)
           [path_ab{i}, filename{i}] = fileparts(subdirpath{i});
           rgb = imread(subdirpath{i});//这里有一个代码隐患,前面的函数中列出了所有子文件夹和文件,并不全是图片文件
     gray = rgb2gray(rgb); for j = 1 : 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:gamesIGIinIGI.exe。fileparts将这个文件名(包含完整路径信息)各部分分别提取到四个变量中。 
    其中pathstr是这个文件的路径名,name是文件名,ext是包含一个点号文件的扩展名(指定了文件的类型)。 

  • 相关阅读:
    如何使用log4net记录日志
    js鼠标左右键,键盘值
    MagicAjax的内部原理初探(一)
    关于VS2005内置web服务器和IIS的区别问题(讨论,收集)
    在Linux中使用C#
    方便你的测试(TestDriven.NET)
    转载:数据库sharding(scale up to scale out)
    单元测试--爱你不容易
    你期待已久的ASP.NET Atlas(一)[翻]
    Ajax底层代码简析(可直接用的框架)
  • 原文地址:https://www.cnblogs.com/qinguoyi/p/7577223.html
Copyright © 2011-2022 走看看