2010-10-11 166 views
1

如何在Matlab中保存没有压缩的jpeg图像?如何在Matlab中保存没有压缩的jpeg图像?

我试图

targetImageFile = 'skype2.png'; 
targetImage = imread(targetImageFile); 

imwrite(targetImage,'output.png','Compression','none',... 
     'WriteMode','append'); 

不过,我

input: 
compressionRatio  = 1.992735e+000 
output: 
compressionRatio  = 2.090858e+000 

谢谢您的建议。

+2

PNG或JPEG - 这是它? – 2010-10-11 16:07:37

+0

我可以问你如何得到/计算压缩比率?谢谢 – Alex 2017-08-07 21:17:34

回答

10

目前还不清楚是否正在试图保存在JPEGPNG格式的图像(你的问题和代码示例分别使用不同的东西),但如果你看看文档IMWRITE你会发现,无论这些格式的使用'Compression''WriteMode'参数。 TIFFHDF4格式使用这两个参数。

对于JPEG format,您可以调整'Mode''Quality'属性以减少图像的压缩。 PNG format使用无损压缩。如果你想避免所有的压缩(有损或无损),你可以将图像保存为BMP格式。

这里有保存不同格式的图像和几个例子输出图像的生成的文件大小:

X = imread('peppers.png');    %# Sample image: 589,824 bytes of data 
imwrite(X,'peppers.bmp');    %# Bitmap output: 589,878 byte output file 
imwrite(X,'peppers.png');  %# PNG output (lossless): 287,589 byte output file 
imwrite(X,'peppers.jpg');  %# JPEG output (lossy): 23,509 byte output file 
imwrite(X,'peppers.jpg',...  %# JPEG output (lossy): 144,068 byte output file 
      'Quality',100); 
imwrite(X,'peppers.jpg',... %# JPEG output (lossless): 306,061 byte output file 
      'Mode','lossless');