MATLAB读取黑白图像显示却是黑色,24位深转8位深黑白图像解决方法
1、24位深转8位深:
ps将24位深原图.png保存为GIF图256即为8位,再将8位gif图转为需要的.png,即转为8位深png图。
2、MATLAB读取黑白图像显示几乎全为黑色:
这是最近处理图像库遇见的一个问题,估计是MATLAB的一个bug,用MATLAB暂时没想到解决方法,所以转战有python解决。
问题具体如下:
这是8位深的png图,看上去是黑白色都有,但用MATLAB处理读取后并显示却是:大部分数字为0,边缘部分极少数大于0。
很是诡异有么有,究竟是眼睛欺骗了我们,还是数字欺骗了我们。5000张图中15张出现了这样的问题。
于是,用python读取图像并保存,结果就正确了,白是白,黑是黑。附上简单的代码:
from skimage import io
img=io.imread('D:/03152_matte.png')
print(img)
io.imshow(img)
io.imsave('D:/03152_matte.png',img)
3、如果对精度要求不高,可以直接保存24位深的图的第一维,这样保存得到的是正确的黑白图像。
个人看法:MATLAB做了这么多年了,怎么还会有这么低级的错误,是不是该跟官方反应一下。。。ORZ。。。