У меня есть много изображений, которые находятся в каталоге с именами 1.jpg, 2.jpg, 3.jpg и т. д. Я читаю их одно за другим. Я делаю некоторую операцию, а затем сохраняю их.
Я хочу автоматизировать эту операцию. Я могу прочитать названия изображений. Затем при создании выходного файла я извлекаю image_name из имени входного файла, добавляю необходимые имена расширений, добавляю тип файла, который я хочу сохранить, а затем сохраняю изображения с помощью команды печати.
%//Read the image
imagefiles = dir('*.bmp');
nfiles = length(imagefiles); % Number of files found
for ii=1:nfiles
currentfilename = imagefiles(ii).name;
currentimage = imread(currentfilename);
images{ii} = currentimage;
Img=currentimage;
%//Do some operation on the image
%//Save the image file
h=figure;
%//Display the figure to be saved
token = strtok(currentfilename, '.');
str1 = strcat(token,'_op');
print(h,'-djpeg',str1);
end
Эта программа отлично работает, но потом я узнал об этой команде для построения красивых графиков. export_fig
export_fig
принимает основную команду в виде:
export_fig file_name.file_type
Как я могу автоматически заменить имя выходного файла, которое хранится как str1, вместо заполнителя file_name в команде export_fig.
ПРИМЕЧАНИЕ. Обратите внимание на это из документации export_fig (для переменных имен файлов)
for a = 1:5
plot(rand(5, 2));
export_fig(sprintf('plot%d.png', a));
end
Я не хочу этого решения. Пожалуйста, поймите мой вопрос о том, что существуют тысячи функций MATLAB, которые требуют ввода данных, как указано в export_fig
основном выражении. Особый случай, связанный с переменными именами файлов, уже встроен в функцию export_fig.
Я хочу знать, если он не был построен, то как я мог использовать автоматически сгенерированные переменные имена файлов? Мой запрос касается не только export_fig, но и основного способа, которым я могу указать имена переменных файлов, если ввод не может быть строкой?
Пожалуйста, спросите меня, если у вас есть проблемы с пониманием вопроса.
export_fig
вместоprint
, вы можете просто заменитьprint(h,'-djpeg',str1)
наexport_fig(str1)
, а str1 теперь будетstrcat(token,'_op.jpeg')
. Возможно, стоит отметить, что в MATLAB вызов функции вида:function_name x
идентиченfunction_name('x')
. - person sebastian   schedule 21.09.2013