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

时间:2010-10-11 16:04:44

标签: image matlab

如何在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 个答案:

答案 0 :(得分:10)

目前还不清楚您是要尝试以JPEG还是PNG格式保存图片(您的问题和代码示例各自使用不同的内容),但如果您查看{{3}的文档您会注意到这些格式都不使用'Compression''WriteMode'参数。 IMWRITETIFF格式使用这两个参数。

对于HDF4,您可以调整'Mode''Quality'属性以减少图像压缩。 JPEG 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');

答案 1 :(得分:5)

如果您不想压缩,那么您肯定需要位图('bmp')吗?如果您想要无损压缩,那么您希望'mode''lossless' 'jpg''png'已经是无损格式。

'Compression'只是'tiff'格式的选项。

请参阅http://www.mathworks.com/help/techdoc/ref/imwrite.html#f25-713936