matlab获取目录中图像名称及路径的递归实现

来源:互联网 发布:淘宝宝贝过期不存在 编辑:程序博客网 时间:2024/06/02 07:18

一个matlab获取目录中图像名称及路径的递归实现~

      matlab源文件

      getImageList.m

[c-sharp] view plaincopyprint?
  1. function [ imageList ] = getImageList( imageListCur, rootDir, imageDir, imageType )  
  2. % 输入参数说明:  
  3. % imageListCur 当前的图像列表,第一次执行递归时其为空  
  4. % rootDir 图像文件夹所在的根目录,第一次执行递归时其为空  
  5. % imageDir 图像所在的目录  
  6. % imageType 图像的类型  
  7. % 输出参数说明:  
  8. % imageList 图像文件夹(包含其中子目录)中的所有图像列表与当前图像列表的并集  
  9. % imageList(j).id 第j个图像的标识符  
  10. % imageList(j).name 第j个图像的名字   
  11. % imageList(j).dir 第j个图像的所在目录  
  12. % 作者:  
  13. % raocong  
  14.   
  15. curDir = pwd;  
  16.   
  17. % 进入指定的图像目录  
  18. cd( imageDir );  
  19.   
  20. % 开始做事  
  21. imageEnum = dir( [ '*.' imageType ] );  
  22. imageList = imageListCur;  
  23. nCurImgNum = length( imageList );  
  24.   
  25. for i = 1 : length( imageEnum )  
  26.     nCurImgNum = nCurImgNum + 1;  
  27.     imageList( nCurImgNum ).id = nCurImgNum - 1;  
  28.     imageList( nCurImgNum ).name = imageEnum( i ).name;  
  29.     imageList( nCurImgNum ).dir = [ rootDir '/' imageDir ];  
  30. end  
  31.   
  32. fileEnum = dir;  
  33.   
  34. for i = 1 : length( fileEnum )  
  35.     if strcmp( fileEnum(i).name, '.' ) || strcmp( fileEnum(i).name, '..' )  
  36.         continue;  
  37.     end  
  38.       
  39.     if fileEnum(i).isdir  
  40.         % 递归调用自身  
  41.         imageList = getImageList( imageList, [ rootDir '/' imageDir ], fileEnum(i).name, imageType );  
  42.     end  
  43. end  
  44.   
  45. % 做完事之后回到根目录  
  46. cd( curDir );  
  47.   
  48. end  

      getImageListInSpecifiedFolder.m

[c-sharp] view plaincopyprint?
  1. function [ imageList ] = getImageListInSpecifiedFolder( imgDirectory, imgType  )  
  2. % 输入参数:  
  3. % imgDirectory 图像存放的目录,例如当前目录下的Temp文件夹  
  4. % imgType 查找的图像类型  
  5. % 输出参数:  
  6. % imageList 图像列表包含图像文件名及其所在目录  
  7. % 作者:  
  8. % raocong  
  9.   
  10. % 初始化图像列表结构体  
  11. imageList = struct'id', [], 'name', [], 'dir', [] );  
  12. % 得到imgDirectory目录下类型为imgType的所有图像列表  
  13. imageList = getImageList( imageList, [], imgDirectory, imgType );  
  14. % 删除第一个空值元素  
  15. imageList(1) = [];  
  16.   
  17. end  

      run.m

[c-sharp] view plaincopyprint?
  1. clc;  
  2. clear all;  
  3. addpath( pwd );  
  4.   
  5. % 得到Temp目录及其子目录中所有的Jpg格式的文件列表  
  6. imageList = getImageListInSpecifiedFolder( 'temp''jpg' );  
  7.   
  8. % 显示结果  
  9. % imageList(j).id 第j个图像的标识符  
  10. % imageList(j).name 第j个图像的名字   
  11. % imageList(j).dir 第j个图像的所在目录  
  12. disp( 'ID Name & Folder' );  
  13. for i = 1 : length( imageList )  
  14.     disp( [ num2str( imageList(i).id ) ' ' imageList(i).name ' ' imageList(i).dir ] );  
  15. end  

      实验结果

0 0
原创粉丝点击