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。。。

原文地址:https://www.cnblogs.com/fanru5161/p/7400445.html