【问题标题】:Imread single image file using wildcard MatLab使用通配符 MatLab 读取单个图像文件
【发布时间】:2019-01-19 19:58:51
【问题描述】:

我在一个文件夹中有一堆图像,它们被编入索引。 例如:

01_Cat.jpg 
02_Dog.jpg 

等等。现在,我想读取图像,但我不想给出完整的图像名称。是否可以使用如下通配符读取图像

A = imread('01_*.jpg');
B = imread('02_*.jpg');

这不起作用。 MatLab 从字面上看是 *

【问题讨论】:

    标签: matlab wildcard filepath imread


    【解决方案1】:

    我认为imread 不支持使用通配符,但是您可以使用dir 函数解决它,如下所示:

    A = imread(getfield(dir('01_*.jpg'),'name'));
    B = imread(getfield(dir('02_*.jpg'),'name'));
    

    【讨论】:

    • 或者直接创建所有jpg的列表。使用 dir('.jpg') 然后循环遍历结果: files = dir('.jpg');对于 f = 文件的 img = imread(f.name); %做某事结束
    • 是的,这是另一种选择,尽管它应该是 dir('*.jpg') 而不是 dir('.jpg')。我只是想向 OP 展示他如何使用他的语法来实现所需的输出。
    • 成功了!我还有一个问题。图像文件不在当前目录中。我给出了dir 函数的路径。但是 getfield 函数只返回图像的名称。所以,目前我将路径附加到getfield 返回的值。是否有任何直接的方法来获取完整路径?
    • 您可以使用fullfilegetfieldfoldergetfieldname 结合使用。
    • 谢谢!我使用dir.('folder')dir.('name') 而不是getfield(dir, 'name')。 MatLab 建议这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多