MATLAB读取黑白图像显示却是黑色,24位深转8位深黑白图像解决方法

Posted fanrupin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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。。。

以上是关于MATLAB读取黑白图像显示却是黑色,24位深转8位深黑白图像解决方法的主要内容,如果未能解决你的问题,请参考以下文章

matlab 读了一个二维数组,明明看到里面的值除了127就是0,为啥用imshow显示后只有黑白两色

求助:matlab怎样把矩阵显示成黑白图像

图像处理Matlab——图像灰度值

如何通过 tesseract OCR 读取黑色背景图像上的黑色文本?

matlab中如何将灰度图转化为二值黑白图像?敬请各位大侠指点!

用c语言读取24位位图bmp文件