преобразовать изображение в формате (.png) в (.jpg) в Matlab - PullRequest
0 голосов
/ 28 ноября 2010

В моем приложении мне нужно конвертировать все изображения в формате (.png) в (.jpg). Я использовал функцию imwrite (одна из функций Matlab):

S=imread('D-1.png');
imwrite(S,'D-1.jpg');

и я могу конвертировать только одно изображение ... Мне нужно конвертировать все изображения и сохранить их в новой папке. Может кто-нибудь, пожалуйста, дайте мне знать, как я могу это сделать? Есть ли какие-либо изменения в свойствах изображения после преобразования его в формат (.jpg)?

Пожалуйста, перешлите ваши ценные предложения.

Спасибо

Ответы [ 3 ]

3 голосов
/ 28 ноября 2010

Что вам нужно сделать, это:

  1. Получить список всех файлов, которые вы хотите конвертировать. Используйте функцию dir, которая возвращает структуру с компонентом name.
  2. Напишите цикл для просмотра файлов по одному и их преобразования - вы можете использовать уже написанный код, но, конечно, вам придется задавать имена файлов на каждой итерации.
  3. Когда вы записываете преобразованный файл, включите относительный путь к новой папке в имя файла, который вы пишете, что-то вроде: imwrite(S,'./newfolder/D-1.jpg').

Есть ли какие-либо изменения в свойствах изображения после преобразования? В целом, да, поскольку существуют различия в информации, кодируемой в png и jpeg. Справка по Matlab для функций imread и imwrite объясняет некоторые из них. Вы можете обнаружить, что вам нужно или вы хотите изменить изображение, которое вы прочитали, прежде чем писать его.

1 голос
/ 28 ноября 2010

Это здесь , в сочетании с тем, что у вас должно получиться!

0 голосов
/ 29 ноября 2010

Я принял предложение от участников и попробовал следующую кодировку, чтобы я смог преобразовать формат (.png) в (.jpg) формат:

fileFolder = fullfile('D:','\Last Work  Nov. 2010 16','Last ColTexFeapro28 Nov', 'Brodatz classes', 'Brodatz999');
dirOutput = dir(fullfile(fileFolder,'D*.png'));
fileNames = {dirOutput.name};

for k=1:length(fileNames) 
               I=fileNames{k}; 
S=imread(I);  
newName = sprintf('image%04d.jpg',k);    // convert from (.png to .jpg ) format
movefile(fileNames{k},newName);   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...