MATLAB图像保存压缩后改变像素值的问题

来源:互联网 发布:已有备案网站增加域名 编辑:程序博客网 时间:2024/05/26 09:57

原文地址: http://www.ilovematlab.cn/thread-140391-1-1.html

用zeros(x,y)建立了一个矩阵,把里面对应一些位置改为1,这样就有了下图中上的结果,各个像素值都很正常,imshow出来也没有问题标准的二值图像。然后我就imwrite保存了。结果想继续处理的时候,用imread读取保存的文件,发现里面的一些像素值改变了,不是单纯的二值,而是出现了诸如250,4,6之类的值。使用im2double变化后,如右下,没有任何区别。


经过多种测试,基本可以确定就是图像保存格式的问题,如果用bmp图像格式保存的话,再用imread读入就没有这样的问题。
或者对于jpg写入时的imwrite参数做一些修改,比如mode的lossless,quality的100可以获得近似满意的结果。
最后想说的是,如果对你的结果图片还有后续操作需要做的话,最好还是保存为非压缩格式比较好一些,比如bmp,tiff之类。有压缩的图像格式在保存时怎么都会出现错误的说。这一点我在matlab的answers上也得到了证实。

原创粉丝点击