MATLAB图像保存压缩后改变像素值的问题
2017-09-04 10:14
495 查看
原文地址: 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上也得到了证实。
用zeros(x,y)建立了一个矩阵,把里面对应一些位置改为1,这样就有了下图中上的结果,各个像素值都很正常,imshow出来也没有问题标准的二值图像。然后我就imwrite保存了。结果想继续处理的时候,用imread读取保存的文件,发现里面的一些像素值改变了,不是单纯的二值,而是出现了诸如250,4,6之类的值。使用im2double变化后,如右下,没有任何区别。
经过多种测试,基本可以确定就是图像保存格式的问题,如果用bmp图像格式保存的话,再用imread读入就没有这样的问题。
或者对于jpg写入时的imwrite参数做一些修改,比如mode的lossless,quality的100可以获得近似满意的结果。
最后想说的是,如果对你的结果图片还有后续操作需要做的话,最好还是保存为非压缩格式比较好一些,比如bmp,tiff之类。有压缩的图像格式在保存时怎么都会出现错误的说。这一点我在matlab的answers上也得到了证实。
相关文章推荐
- 关于MATLAB中imagesc函数图像保存的问题
- Matlab中对图像应用plot或者rectangle后的图像保存问题
- matlab imwrite函数保存jpg格式图像丢失数据或改变图像
- opencv2改变图像像素大小到指定像素并保存改变后的图像
- 关于matlab图像保存的问题
- 关于matlab用export_fig去掉白边、保存图像等问题
- Matlab中对图像应用plot或者rectangle后的图像保存问题
- opencv图片压缩后读取的像素值,和保存后读出来的像素值不一样的问题。
- Matlab保存图像过程中遇到的问题和一些解决办法
- 关于matlab用export_fig去掉白边、保存图像等问题
- Matlab中对图像应用plot或者rectangle后的图像保存问题
- 创建画线控件窗口大小改变引起的重绘,保存图像问题。
- Matlab GUI图像保存问题
- 关于matlab用export_fig去掉白边、保存图像等问题
- 【原创】关于MATLAB中imagesc函数图像保存的问题
- matlab图像的读取和保存
- matlab ( octave ) imwrite 保存图像详解
- Matlab显示图像问题,double处理后,图像变白
- matlab 读取txt数据并保存为图像
- easyui datagrid 浏览器像素及改变表、列宽问题