2014-02-06 4 views
0

У меня есть 10 изображений все названные ax1.png .. ax2.png весь путь до ax10.pngСчитывание и изменение размера PNG файлы MatLab

Я стремлюсь, чтобы прочитать их все и изменять их размер.

Я попытался следующие:

fileFolder = 'mrivolumeimages'; 
dirOutput = dir(fullfile(fileFolder,'ax%d.png')); 
fileNames = {dirOutput.name}; 

for k=1:length(fileNames) 
    H=fileNames{k}; 
    S=imread(H); 
    I=imresize(S, [690 896]); 
    [SUCCESS,MESSAGE,MESSAGEID] = mkdir('mrivolumeimages','New_folder'); 
    imwrite(I,fullfile('New_folder',H)); 
end 

Но это не похоже на работу. Я хочу создать новые измененные изображения и сохранить их в моем каталоге. могу ли я, пожалуйста, дать совет, почему это не сработает?

+0

Что не Работа? Любое сообщение об ошибке? – Daniel

+0

@ Daniel no нет сообщения об ошибке. Я просто не получаю каталог и не получаю измененные изображения – Ph9

+0

У вас есть права на запись в папку 'mrivolumeimages'? –

ответ

0
fileFolder = '/Users/PJ/Documents/MATLAB/ToolboxLS-1.1.1/Dissertation/mrivolumeimages'; 
dirOutput = dir(fullfile(fileFolder,'ax*.png')); 
fileNames = {dirOutput.name}; 

for k=1:length(fileNames) 
    H=fileNames{k}; 
    S=imread(H); 
    I=imresize(S, [896 690]); 
    [SUCCESS,MESSAGE,MESSAGEID] = mkdir('ResizedAx'); 
    imwrite(I,fullfile('ResizedAx',H)); 
end 
1

вам нужно использовать wildchars ('*') в dir и не символы форматирования строки ('%d'):

dirOutput = dir(fullfile(fileFolder,'ax*.png')); 

В качестве альтернативы, вы можете указать номер с помощью

for k=1:10 
    H = fullfile(fileFolder, sprintf('ax%d.png', k) ); 
    % and you can continue from here... 
end 
+0

спасибо! теперь я получаю сообщение о том, что он не может писать в папку? – Ph9

+0

@ Ph9 вы создали '' New_folder''? используйте 'mkdir', если вам нужно ... – Shai

+0

спасибо, я получил его для работы с кодом ниже: – Ph9

Смежные вопросы