使MATLAB研究数字图像处理,常常需要将得到的图像保存到电脑中,以便后续使用。今天在使用subplot函数分割窗口显示多幅图像时发现一个问题,用鼠标拖拽figure对象,竟会使得保存的图像呈现不同的形状大小和分辨率。
subplot(1,2,1),imshow(I1),title('RGB图像');
subplot(1,2,2),imshow(I2),title('灰度图像');

可以看到figure1窗口,以目前这种状态保存后得到图片如下,大小为24KB:

上面然后点击figure1窗口上的最大化,保存得到如下图片,大小为80KB,大了将近三倍:

再来一组对比:
h1=subplot(1,2,1),set(h1,'position',[0,0,0.5,0.9]),imshow(I1),title('RGB图像');
h2=subplot(1,2,2),set(h2,'position',[0.5,0,0.5,0.9]),imshow(I2),title('灰度图像');


上面第二幅图是将figure窗口最大化后得到的结果,由于最大化的关系,将两个内容的间距拉的更大,反而显得不好看。
还有个更狠的:

将figure窗口拉成长方形状,结果保存的图片就这样悲剧了。由此可以得到一个猜想,那就是保存figure窗口的图像时,并不是将你要显示的变量压缩编码变成图像格式,而是将figure窗口下的全部内容,包括空白区域,保存成图像(欢迎大神告知我真相)。

¥13.85
鹅鸭杀兑换码金币充值恶魔女猎手港湾鹅鸭杀扭蛋机代币激活码cdkey皮肤礼包goose goose duck狼人杀鹅鸭游戏
¥5.00
PC中文steam幽灵行者Ghostrunner 国区CDKey激活码 Project Hel 赫尔计划 全DLC 冬季套装金牛礼包 霓虹套装
¥31.50
Steam 侠乂行 侠义行 浪迹天涯 武侠乂2 武侠义2 国区激活码CDKey DLC烁金武器 青竹礼包中文PC正版游戏 秒发
¥46.40
steam鹅鸭杀兑换码金币充值鹅鸭杀扭蛋机代币鹅鸭杀皮肤礼包激活码cdkeygoose goose duck狼人杀
¥67.00
鹅鸭杀初学者包兑换码礼包激活码KEY发货goose goose duck鹅鸭狼人杀派对鸭 充值服装大眼眼镜初学者steam
¥31.50
Steam侠乂行 侠义行 浪迹天涯 武侠乂2 武侠义2 DLC烁金武器 青竹礼包 国区激活码CDKey 中文PC正版游戏 秒发