2016-07-07 35 views
-3

我有一个功能,需要多页TIFF图像,并找到每个页面的最大像素的平均值。该函数工作正常,但需要使用可变参数函数的可变数量的输入路径。如何在Matlab中快速创建对应于图像路径的char变量?

输入的格式类似于'C:\ Users \ me \ desktop \ thefolder \ theimage.tif',该函数接受所有这些输入并给出平均值。我需要帮助自动化这个过程多一点。

到现在为止,我刚才被手动写出每个单独的图像的路径,但作为多页TIFF数量上升变得耗时写的东西展现出来......

我怎样写一个函数可以轻松找到所有图像,然后在工作空间中为我提供char变量,这些变量对应于所有图像路径,然后我可以将其提供给主函数?

+0

[通过matlab文件夹中的文件循环](http://stackoverflow.com/questions/11621846/loop-through-files-in-a-folder-in-matlab) – excaza

回答

0

dir函数可以使用通配符来返回单个文件夹中所有匹配文件的结构数组。

E.g.

>> files = dir('C:\Users\me\desktop\thefolder\*.tif'); 

files = 

3x1 struct array with fields: 

    name 
    date 
    bytes 
    isdir 
    datenum 

你可以通过阵列中的每个元素循环,也可以按如下方式创建工作区中的一个单元阵列:

>> tif_filenames = {files.name} 

tif_filenames = 

    'theimage.tif' 'another.tif' 'and_another.tif' 

但是,如果你处理函数使用varargin,那么你就可以简单的调用它如下:

>> find_max_average_pixel(files.name) 

和MATLAB每个文件名映射到varargin条目,以便从你的函数内部它看起来好像它被称为具有m多个字符串。

如果你想从一个子文件夹的树中拉文件,那么它需要更多的思考。

+0

非常感谢,工作完美 –

相关问题