You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

MATLAB与Octave新版本JPEG压缩过强致失真,如何调整压缩强度?

解决MATLAB/Octave导出JPEG时压缩失真的问题

你观察到的新版本MATLAB和Octave默认JPEG压缩强度过高导致失真的问题确实存在,好在不需要额外工具或切换格式,直接通过print命令的参数就能调整压缩质量:

针对MATLAB的设置

MATLAB的print命令其实支持指定JPEG质量参数,只是容易被忽略这个格式特定选项。你可以通过两种方式设置:

  1. -djpeg后直接跟上质量值(范围1-100,100为最低压缩/最高质量):
print(strcat("test_jpeg_size_", description ,'.jpg'), '-djpeg90');
  1. 使用单独的-quality参数明确指定:
print(strcat("test_jpeg_size_", description ,'.jpg'), '-djpeg', '-quality', 90);

把质量值调到90或更高(比如100),就能大幅减少失真,文件大小也会接近旧版无失真的水平。

针对Octave的设置

Octave同样支持通过-quality参数控制JPEG压缩强度,修改你的代码如下:

print(strcat("test_jpeg_size_", description ,'.jpg'), '-djpeg', '-quality', 90);

如果希望所有绘图都默认使用这个质量,还可以设置全局默认值:

set(0, 'defaultfigureprintoptions', '-quality 90');

同样,质量值越高,压缩率越低,失真越少。如果要复刻Octave 3的无失真效果,可以尝试将质量设为100。

这样修改后,你就能直接导出低压缩、低失真的JPEG图像,不需要额外工具或切换到PNG格式。

内容的提问来源于stack exchange,提问作者tardis

火山引擎 最新活动