Объединение изображений из папки

#image #matlab #file #loading #concatenation

#изображение #matlab #файл #Загрузка #объединение

Вопрос:

У меня есть серия изображений, сохраненных в папке, и я написал короткую программу, чтобы открыть два из этих файлов изображений, объединить их (предпочтительно по вертикали, хотя сейчас я пытаюсь по горизонтали), затем сохранить это новое изображение в ту же папку. Это то, что я написал до сих пор:

 function concatentateImages

%this is the folder where the original images are located path='/home/packremote/SharedDocuments/Amina/zEXAMPLE/';
file1 = strcat(cr45e__ch_21', '.pdf');
[image1,map1] = imread(graph1);
file2 = strcat('cr45f__ch_24', '.jpg');
[image2,map2] = imread(graph2);
image1 = ind2rgb(image1,map1);
image2 = ind2rgb(image2,map2);
image3 = cat(2,image1,image2);

%this is the directory where I want to save the new images
dircase=('/home/packremote/SharedDocuments/Amina/zEXAMPLE/');
nombrejpg=strcat(dircase, 'test', jpgext)
saveas(f, nombrejpg, 'jpg')
fclose('all');
  

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

В настоящее время я использую файлы jpg, но формат можно легко преобразовать.

Приветствуется любая информация о том, как исправить эту ошибку, или более удобный способ предварительной обработки этой задачи!

Приветствия,

Амина

Ответ №1:

Заменить

 [image1,map1] = imread(graph1);
  

и

 [image2,map2] = imread(graph2);
  

Автор:

 [image1,map1] = imread(file1);
  

и

 [image2,map2] = imread(file2);
  

Также убедитесь, что вы находитесь в правильном рабочем каталоге.

Ответ №2:

В дополнение к ответу @Simon, вам также необходимо изменить

 file1 = strcat(cr45e__ch_21', '.pdf');
  

Для

 file1 = strcat('cr45e__ch_21', '.pdf');
  

Т.е. вы забыли ‘. Также ваша функция, похоже, не включает определение jpgext . Я ожидаю, что вы хотите строку типа

 jpgext = '.jpg';
  

Наконец, в основном проблема с практикой кодирования, но вы можете переключиться на использование fullfile для построения полного пути к файлу.

Кроме того, вместо того, чтобы беспокоиться о том, чтобы находиться в правильном рабочем каталоге, если вы используете полные пути, вы избавляете себя от необходимости отслеживать, в каком каталоге вы находитесь. ИТАК, я бы предложил:

 dir1 ='/home/packremote/SharedDocuments/Amina/zEXAMPLE/';
file1 = fullfile(dir1, 'cr45e__ch_21.pdf');
  

и т. д