Как сохранить изображения JPEG без сжатия в Matlab? - PullRequest
1 голос
/ 11 октября 2010

Как сохранить изображения в формате JPEG без сжатия в Matlab?

Я пытался

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 ]

10 голосов
/ 11 октября 2010

Неясно, пытаетесь ли вы сохранить изображение в формате JPEG или PNG (каждый из ваших вопросов и примеров кода использует что-то свое), но если вы посмотрите на документацию для IMWRITE вы заметите, что ни один из этих форматов не использует параметр 'Compression' или 'WriteMode'. Форматы TIFF и HDF4 используют эти два параметра.

Для формата JPEG вы можете настроить свойства 'Mode' или 'Quality', чтобы уменьшить сжатие изображения. PNG формат использует сжатие без потерь. Если вы хотите избежать сжатия all (с потерями или без потерь), вы можете просто сохранить изображение в формате 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');
5 голосов
/ 11 октября 2010

Если вы не хотите сжатие, то, конечно же, вам нужно растровое изображение ('bmp')?Если вы хотите сжатие без потерь, тогда вы хотите, чтобы 'mode' было 'lossless' для 'jpg'.'png' уже является форматом без потерь.

'Compression' является опцией только для формата 'tiff'.

См., http://www.mathworks.com/help/techdoc/ref/imwrite.html#f25-713936

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...