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

时间: 2024-10-27 07:52:06

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

【转】matlab读取文件各种方法

本技术支持指南主要处理:ASCII, binary, and MAT files.要得到MATLAB中可用来读写各种文件格式的完全函数列表,可以键入以下命令: help iofun MATLAB中有两种文件I/O程序:high level and low level. High level routines: 包括现成的函数,可以用来读写特殊格式的数据,并且只需要少量的编程.Low level routines: 可以更加灵活的完成相对特殊的任务,需要较多的额外编程. High level ro

matlab读取.mat格式文件

matlab读取.mat格式文件 13.1 数据基本操作 本节介绍基本的数据操作,包括工作区的保存.导入和文件打开.13.1.1 文件的存储 MATLAB支持工作区的保存.用户可以将工作区或工作区中的变量以文件的形式保存,以备在需要时再次导入.保存工作区可以通过菜单进行,也可以通过命令窗口进行. 1. 保存整个工作区 选择File菜单中的Save Workspace As…命令,或者单击工作区浏览器工具栏中的Save,可以将工作区中的变量保存为MAT文件. 2. 保存工作区中的变量 在工作区浏览

Matlab读取数据中出现的问题

在运行Matlab读取一段数据并做处理的时候,常常会提示服务器错误,但是等待一会再次运行就会成功运行. 代码如下: clc; clear all; [~,~,rawdata] = xlsread('进阶准备list10.xlsx'); tag = char('[单项选择题]', '[导入结束]'); fid=fopen('C:\Users\Wang hao\Desktop\任务\进阶准备list10.txt','wt');%写入文件路径 [m,n]=size(rawdata); fprintf(

matlab 读取excel

read from excel matlab http://stackoverflow.com/questions/10781700/how-can-i-import-string-from-excel-into-matlab 将读取的信息从string 转换为number matlab读取矩阵的某一行: a(1,:) %读取第一行

matlab读取指定路径下的图像

利用matlab读取指定路径下的图像 %% 读入指定路径imgFolder下的图像imgName imgFolder = 'F:\博\快盘\图像+数据\images\文章实验图'; %指定路径 imgName = 'tile3_24.png'; %指定路径下的图像的名字 % read the image imgInput= imread(fullfile(imgFolder,imgName)); %读入图像

利用 matlab 读取SAR 元数据

这方面可以参考书籍:"Digital processing of synthetic aperture radar data", by Ian Cumming and Frank Wong. 里面给出了用matlab写的例子.不同的传感器获取元数据类型有所不同,数据结构比较复杂,要针对不同情况进行分析. 相关英文解释如下: 点击打开链接 利用 matlab 读取SAR 元数据

matlab读取cvs文件的几种方法

matlab读取CVS文件的几种方法: 1,实用csvread()函数 csvread()函数有三种使用方法: 1.M = csvread('filename')2.M = csvread('filename', row, col)3.M = csvread('filename', row, col, range) 第一种方法中,直接输入文件名,将数据读到矩阵M中.这里要求csv文件中只能包含数字. 第二种方法中,除了文件名,还指定了开始读取位置的行号(row)和列号(col).这里,行号.列号

JCIFS读取远程服务器文件过慢的解决方法

发表于3年前(2013-07-12 11:23)   阅读(1174) | 评论(0) 0人收藏此文章, 我要收藏 赞0 jcifs smb 与windows explorer打开相同的文件相比,JCIFS默认情况下要慢太多了.我找了大半天,总算找出了解决方法,增加如下配置,则读取速度会有质的飞跃,我这边从7s提升至0.2s: ? 1 System.setProperty("jcifs.smb.client.dfs.disabled", "true"); 至于原因嘛

FileSystemWatcher 读取文件时出现被占用的解决方法

今天做一个小程序监控目录并序列化XML时遇到第一次正常,第二个新文件加入时出现文件被占用的错误,记录下解决方法. 1 FileSystemWatcher watcher = new FileSystemWatcher{ 2 Path = path, 3 Filter = filter, 4 EnableRaisingEvents = true, 5 IncludeSubdirectories = true, 6 NotifyFilter = NotifyFilters.Attributes |