【问题标题】:Loop over the names of files and apply a function on them in matlab [duplicate]循环文件名并在matlab中对它们应用函数[重复]
【发布时间】:2017-01-22 10:33:26
【问题描述】:

我有一个包含数千张 (*.jpg) 图像的文件夹,我想遍历它们的名称并对它们应用计算。

有没有人为此考虑过循环?

【问题讨论】:

  • 向我们展示您的代码

标签: matlab loops directory


【解决方案1】:

遍历决定文件名的变量并使用 sprintf() 将这些变量格式化为字符串。

我不太清楚你的文件名模式,但你会像这样阅读第一组,例如:

for i = 0:9

    % The %d character will be replaced by i in the string
    filename = sprintf('abcda0b%d99.jpg',i);
    im = imread(filename);

    % Image calculations

end

如果您的文件名遵循单一模式,您可以使用嵌套循环执行此操作,以根据确定文件名的变量构造文件名。如果您回复有关您的命名模式的更多详细信息,我可以帮助您。

【讨论】:

  • 是的,当然。名称模式如下:abcd_a0b0.jpg、abcd_a0b99.jpg、abcd_a0b199.jpg、...abcd_a0b9899.jpg、abcd_a0b9999.jpg、abcd_a0b1009.jpg、...abcd_a0b1289.jpg。
  • 是的,当然。名称模式如下:abcd_a0b0.jpg、abcd_a0b99.jpg、abcd_a0b199.jpg、...abcd_a0b9899.jpg、abcd_a0b9999.jpg、abcd_a0b1009.jpg、...abcd_a0b1289.jpg。然后新的命名开始如下:abcd_a99b0.jpg、abcd_a99b99.jpg、abcd_a99b199.jpg、...abcd_a99b12799.jpg。然后新的命名集 abcd_a199b0.jpg , abcd_a99b199.jpg, abcd_a99b299.jpg, ... 最后一个是 abcd_a18399b12799.jpg。名称是在扫描图像时分配的,名称是每个扫描点的坐标。
【解决方案2】:

你可以使用dir函数:

path='The_path_to_directory_contains_the_jpg_files';
d=dir(path);

for k=3:length(d)
    im=imread(fullfile(path,d(k).name));
    % do calculations
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    • 2017-09-07
    • 2021-11-09
    • 1970-01-01
    相关资源
    最近更新 更多