【问题标题】:convert image with (.png) format to (.jpg) format in Matlab在 Matlab 中将 (.png) 格式的图像转换为 (.jpg) 格式
【发布时间】:2011-05-16 19:51:42
【问题描述】:

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

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

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

请转发您的宝贵建议。

谢谢

【问题讨论】:

  • 是否有任何答案回答了您的问题?如果是这样,请接受它,否则请尝试在 cmets 或您的问题中指出缺少的内容。谢谢。

标签: matlab png format


【解决方案1】:

你需要做的是:

  1. 获取要转换的所有文件的列表。使用函数dir,它返回一个带有组件name的结构。
  2. 编写一个循环,一次遍历一个文件并转换它们 - 您可以使用已经编写的代码,但当然您必须在每次迭代时设置文件名。
  3. 当您写出转换后的文件时,在您正在写入的文件名中包含新文件夹的相对路径,例如:imwrite(S,'./newfolder/D-1.jpg')

转换后图片的属性有什么变化吗?一般是有的,因为png和jpeg编码的信息是有区别的。函数 imreadimwrite 的 Matlab 帮助解释了其中的一些内容。您可能会发现您需要或想要在写入之前修改您阅读的图像。

【讨论】:

  • 我已经写了下面的代码,但是如何每次都更改文件名
  • for k=1:length(fileNames) I=fileNames{k}; S=imread(I); imwrite(S,'./H/D-k.jpg');
  • @zenab:要更改您编写的文件的名称,您需要使用 Matlab 的字符串处理工具——类似 ['outfile' num2str(k)] 的东西将为每个文件生成不同的文件名k 的值。这一切都有据可查。
  • 我尝试了以下编码,我得到了我需要的东西
  • fileFolder = fullfile('D:','\Last Work Nov. 2010 16','Last ColTexFeapro28 Nov', 'Brodatz classes', 'Brodatz999'); dirOutput = dir(fullfile(fileFolder,'D*.png'));文件名 = {dirOutput.name};对于 k=1:length(fileNames) I=fileNames{k}; S=imread(I); newName = sprintf('image%04d.jpg',k); % 从 (.png 到 .jpg ) 格式转换 movefile(fileNames{k},newName);
【解决方案2】:

This here,结合你所拥有的应该可以解决问题!

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • -1 MOVEFILE 只会将文件从 .png 重命名为 .jpg。您仍然需要像在您的问题中一样使用 IMWRITE 来正确转换图像
    猜你喜欢
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    相关资源
    最近更新 更多