Неясно, пытаетесь ли вы сохранить изображение в формате 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');