Объединение изображений из папки - PullRequest
1 голос
/ 27 мая 2011

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

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, но формат легко конвертируется.

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

Приветствия

Амин

Ответы [ 2 ]

1 голос
/ 27 мая 2011

В дополнение к ответу @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');

и т. д.

1 голос
/ 27 мая 2011

Заменить

[image1,map1] = imread(graph1);

и

[image2,map2] = imread(graph2);

на

[image1,map1] = imread(file1);

и

[image2,map2] = imread(file2);

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

...