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

Urs*_*jor 1 matlab image

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

我试过了

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

imwrite(targetImage,'output.png','Compression','none',...
       'WriteMode','append');
Run Code Online (Sandbox Code Playgroud)

但是,我得到了

input:
compressionRatio      = 1.992735e+000
output:
compressionRatio      = 2.090858e+000
Run Code Online (Sandbox Code Playgroud)

感谢您的意见.

gno*_*ice 10

目前还不清楚您是要尝试以JPEGPNG格式保存图像(您的问题和代码示例都使用不同的东西),但如果您查看IMWRITE的文档,您会注意到这些格式都不使用'Compression''WriteMode'参数.在TIFFHDF4格式使用这两个参数.

对于JPEG格式,您可以调整'Mode''Quality'属性以减少图像的压缩.PNG格式使用无损压缩.如果您想避免所有压缩(有损或无损),您也可以将图像保存为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');
Run Code Online (Sandbox Code Playgroud)


Jam*_*mes 5

如果你不想压缩,那么你肯定想要一个位图('bmp')?如果你想无损压缩,那么你想'mode'成为'lossless''jpg'.'png'已经是一种无损格式.

'Compression'只是'tiff'格式的一个选项.

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