2016-02-18 2 views
0

Я пытаюсь сохранить все файлы мата, которые в основном представляют собой данные 2D-изображения, в формате jpg-изображения. Но проблема в сохранении в формате jpg. Только последняя проблема с сохранением файла заключается в обновлении имени файла.Как сохранить несколько файлов .mat в формате изображения

Выход должен быть

XZ1.jpg 
XZ2.jpg 
XZ3.jpg 
. 
. 
. 
XZ300.jpg 

Вы бы проверить, где я не прав, но хорошо для экономии .mat файла.

for i = 1:300 

    data = Y(:,:,i); % Z-X planes 

    % save as mat file 

    currentFile = sprintf('XZ%d.mat', i); 

    save(currentFile,'data') % to save as mat file 


    % save as jpg 

    currentFile = sprintf('Slice%d.jpg', i); 

    imwrite(data, 'currentFile.jpg') 

    end 
+1

Посмотрите внимательно на ваш вызов 'imwrite'. Вы не используете переменную 'currentFile'. – excaza

+0

извините, я также попробовал для imwrite (данные, 'currentFile'), но не работает @ excaza – Joe

+1

Можете ли вы уточнить, что «не работает»? Вы получаете ошибки? Является ли вывод не тем, что вы ожидаете? – Suever

ответ

0

Прежде всего, выход «Требуемая мощность» должна быть Slice1.jpg Slice2.jpg

прямо сейчас выход: currentFile.jpg

и это содержит последний срез данных данных = Y (:,:, 300);

При запуске кода код использует один и тот же файл в каждом цикле для сохранения файла JPEG.

изменение линии imwrite (данные, 'currentFile.jpg') для imwrite (данные, CurrentFile) позволит решить проблему

Но: помните, что JPEG является стандартом сжатия потери. Другими словами, если вы снова прочтете файл, данные не будут точно такими же. Если ваши данные являются высокочастотными данными, вы потеряете много информации.