2010-10-11 165 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');