Matlab使用imwrite函数保存成png/bmp格式的图片产生白边问题

Matlab使用imwrite保存成png格式的图片产生白边问题


环境:
win10,matlab2018b,visio2016专业版

问题描述:
使用imwrite函数保存处理后的图片矩阵(灰度图和彩色图均尝试过)中一小块区域为图片后(bmp/png格式均尝试过),使用windows自带的照片查看器打开图片发现存在白边问题。注意,保存区域分辨率较小,大概为80x80的分辨率,白边显示较为明显。如下图所示:
Matlab使用imwrite函数保存成png/bmp格式的图片产生白边问题

但是我就纳闷了,你说你保存出来,在最外边有白边我也认了,咋还隔着一个像素之后还有着淡淡的白边。当时我疑惑不解,但是本着鸵鸟精神我也就没有理会。我把它放进visio里面进行复原效果比对,欸,放进visio就没有白边了,所以白边问题就无所谓啦。下图为放进visio后的图:
Matlab使用imwrite函数保存成png/bmp格式的图片产生白边问题

结果我在visio里面画完对比图之后另存为png格式的图片,白边又出现了!!!如下图所示:
Matlab使用imwrite函数保存成png/bmp格式的图片产生白边问题
然后我去检查了一下是不是matlab保存png图片的时候是不是就有问题了,结果…
Matlab使用imwrite函数保存成png/bmp格式的图片产生白边问题
没有问题!!!
我大胆猜测是matlab在保存低分辨率图像的时候算法压缩会产生这种白边,我的解决措施是:在保存前用imresize函数上采样个几倍。因为白边是一行像素嘛,图像分辨率提高了之后,白边效应就不明显了。虽然姿势不是很优美,但是能混口饭吃,算了算了。最后效果如下图所示:
Matlab使用imwrite函数保存成png/bmp格式的图片产生白边问题

上一篇:视频工具mencoder


下一篇:利用ADB和PIL图片处理的Python抢红包工具