【问题标题】:Rename image file name in matlab在matlab中重命名图像文件名
【发布时间】:2011-01-01 12:44:44
【问题描述】:

我从 Internet 站点加载 10,000 个图像文件并将其保存在文件夹中以在我的项目(图像检索系统)中使用它,现在我需要以顺序名称重命名图像文件,例如 (image1,image2,image3,. ...image10000) ,任何人都可以帮助我... 我想通知您,我在工作中使用了 matlab

谢谢

【问题讨论】:

    标签: image file matlab rename


    【解决方案1】:

    我缩短了一行

    datafiles = dir('*.jpeg');
    for i = 1:length(datafiles)
        fileOut = strrep(datafiles(i).name, '0000.jpeg', '.jpeg');
        movefile(datafiles(i).name, fileOut);
    end
    

    【讨论】:

      【解决方案2】:

      您需要牢记的一件事是文件名中数字部分的格式究竟是怎样的,因为这有时会影响目录中文件的顺序。例如,使用上面给出的命名约定有时会导致如下排序:

      image1.jpg
      image10.jpg
      image11.jpg
      image2.jpg
      image3.jpg
      ...
      

      这通常不是您想要的。如果您改为用零填充数字直到最大数字大小(在您的情况下为 5 位),则应在目录中更好地维护排序顺序:

      image00001.jpg
      image00002.jpg
      image00003.jpg
      ....
      

      要创建这样的文件名,您可以使用SPRINTF 函数。下面是一些以这种方式重命名目录中所有 .jpg 文件的示例代码:

      dirData = dir('*.jpg');         %# Get the selected file data
      fileNames = {dirData.name};     %# Create a cell array of file names
      for iFile = 1:numel(fileNames)  %# Loop over the file names
        newName = sprintf('image%05d.jpg',iFile);  %# Make the new name
        movefile(fileNames{iFile},newName);        %# Rename the file
      end
      

      上述代码还使用了DIRMOVEFILE 函数(如其他答案中所述)。

      【讨论】:

        【解决方案3】:

        你可以使用matlab的“movefile”函数(第一个参数是源名称,第二个参数是目标)或者当你最初写图像时,你可以在你的imwrite命令中指定文件e。

        无论哪种方式,我怀疑您需要遍历目录列表,这可以通过“dir”或“ls”函数来完成。

        【讨论】:

          【解决方案4】:

          在 matlab 中重命名文件:

          movefile('myfile.m','myfile2.m')
          

          你需要把所有文件放在一个文件夹里,试试这样的:

          filelist = dir('*.jpg');
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-11-11
            • 1970-01-01
            • 2015-09-17
            • 2020-05-10
            • 2018-12-20
            • 1970-01-01
            • 2012-04-16
            相关资源
            最近更新 更多