在Matlab中将图像转换为(.png)格式转换为(.jpg)格式

时间:2010-11-28 10:10:45

标签: matlab png format

在我的应用程序中,我需要将(.png)格式的所有图像转换为(.jpg)格式。我使用了imwrite函数(Matlab函数之一):

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

我只能转换一张图片...我需要转换所有图片并将其保存在新文件夹中。 任何人都可以让我知道我该怎么做? 将图像转换为(.jpg)格式后,图像属性是否有任何变化?

请转发您宝贵的建议。

谢谢

3 个答案:

答案 0 :(得分:3)

您需要做的是:

  1. 获取要转换的所有文件的列表。使用函数dir,它返回一个包含组件name的结构。
  2. 写一个循环来逐个浏览文件并转换它们 - 你可以使用你已编写的代码,但当然你必须在每次迭代时设置文件名。
  3. 当您将转换后的文件写出来时,请在您正在编写的文件的名称中包含新文件夹的相对路径,例如:imwrite(S,'./newfolder/D-1.jpg')
  4. 转换后图像的属性是否有任何变化?通常是的,因为png和jpeg编码的信息存在差异。函数imreadimwrite的Matlab帮助解释了其中的一些内容。您可能会发现在编写之前需要或希望修改您阅读的图像。

答案 1 :(得分:1)

This here,加上你所拥有的就应该做到这一点!

答案 2 :(得分:-4)

我接受了会员的建议,我尝试了以下编码,因此我可以将(.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);