我有一个包含.png
个文件的文件夹,我想将它们转换为.jpg
。我编写了这段代码来处理所有这些代码并将它们转换为jpg
imgPath = 'C:\Users\SET1\writer_2\';
imgType = '*.png'; % change based on image type
images = dir([imgPath imgType]);
newPath = 'C:\Users\Desktop\SET1\';
for idx = 1:length(images)
Seq{idx} = imread([imgPath images(idx).name]);
imwrite(Seq{idx}, strcat(newPath,images(idx).name, '.jpg'));
end
但我注意到,当它读取图像时,它会以某种方式改变它。例如,这是原始图像
这是读入的图像,这是保存为imwrite输出的内容
你基本上可以看到变化。首先它将图像反转,然后将笔的笔划转换为点的集合,就像在执行im2bw
我不明白为什么会这样,以及如何解决它。
答案 0 :(得分:1)
问题是图像是彩色映射的。您需要读取如下文件:
[I,map]=imread(yourPngFile);
imshow(I,map);
imwrite(I,map,outfilename);
如果您需要,可以将其转换并将其作为RGB图像保存在单元格数组中:
Seq{idx} = ind2rgb(I,map);
来源: