Переименовать имя файла изображения в Matlab - PullRequest
3 голосов
/ 05 января 2010

Я загружаю 10000 файлов изображений с интернет-сайта и сохраняю их в папке, чтобы использовать их в своем проекте (система поиска изображений), теперь мне нужно переименовать файл изображения в последовательное имя, например (image1, image2, image3 ,. ... image10000), любой может мне помочь ... Я хотел бы сообщить вам, что я использовал Matlab в моей работе

спасибо

Ответы [ 4 ]

13 голосов
/ 05 января 2010

Следует помнить одну вещь: как именно будет выглядеть формат числовой части имени файла, поскольку это может иногда влиять на порядок файлов в каталоге. Например, использование соглашения об именах, которое вы даете выше, иногда приводит к порядку сортировки, подобному следующему:

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

В приведенном выше коде также используются функции DIR и MOVEFILE (как указано в других ответах).

2 голосов
/ 05 января 2010

переименовать файл в matlab:

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

и вам нужно получить все файлы в папке, попробуйте что-то вроде:

filelist = dir('*.jpg');
1 голос
/ 03 января 2013

Я получил на одну строку короче

datafiles = dir('*.jpeg');
for i = 1:length(datafiles)
    fileOut = strrep(datafiles(i).name, '0000.jpeg', '.jpeg');
    movefile(datafiles(i).name, fileOut);
end
1 голос
/ 05 января 2010

Вы можете использовать функцию "Movefile" в Matlab (первый параметр - это имя источника, второй параметр - это место назначения) или когда вы пишете изображение изначально, вы можете указать файл e в вашей команде imwrite.

В любом случае, я подозреваю, что вам нужно перебрать список директорий, это можно сделать с помощью функций "dir" или "ls".

...