MATLAB读取黑白图像显示却是黑色,24位深转8位深黑白图像解决方法
2017-08-20 16:34
330 查看
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。。。
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。。。
相关文章推荐
- DrawDIBDraw显示图像颠倒的解决方法
- matlab读取excel自定义时间非常规解决方法
- php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
- 联想电脑G40读取U盘没有显示的解决方法
- python 读取mssql server 2005 显示中文总是乱码的解决方法
- 解决ImageIcon不能显示图像的方法
- PHP生成验证码时“图像因其本身有错无法显示”的解决方法
- 读取并在屏幕上显示24位bmp图像
- OpenCV全屏显示图像H和W各有1像素的空白解决方法
- android FileReader 读取图片资源显示预览失败解决方法
- 关于MFC中显示OpenCV Mat矩阵中的图像(一种新的解决方法)
- 图像因其本身有错无法显示的解决方法
- Matlab读取图像,显示H、S、V分量
- [mac]matlab for mac —关于无法读取avi文件的解决方法
- MFC的View区显示OpenCV的Mat数据结构图像,24位彩色或者8位灰度图像
- office word标题前面的编号变成黑色方块而不显示数字编号的解决方法
- MATLAB中图像处理后imshow()将一幅图像显示为3幅图像的原因和解决办法
- matlab editor 行号不能正常显示解决方法
- 在Ubuntu14.04和Python3.4-3.6环境中,matplotlib不显示图像的问题的解决方法
- <s:property>标签从后台读取Date类型年份为两位在jsp页面显示的解决方法