matlab读取img格式文件
hdrfilename='a.hdr';
imgfilename='a.img';
%读取ENVI标准格式图像文件
%读取图像头文件
fid = fopen(hdrfilename, 'r');
info = fread(fid,'char=>char');
info=info';%默认读入列向量,须要转置为行向量才适于显示
fclose(fid);
%查找列数
a=strfind(info,'samples = ');
b=length('samples = ');
c=strfind(info,'lines');
samples=[];
for i=a+b:c-1
samples=[samples,info(i)];
end
samples=str2num(samples);
%查找行数
a=strfind(info,'lines = ');
b=length('lines = ');
c=strfind(info,'bands');
lines=[];
for i=a+b:c-1
lines=[lines,info(i)];
end
lines=str2num(lines);
%查找波段数
a=strfind(info,'bands = ');
b=length('bands = ');
c=strfind(info,'header offset');
bands=[];
for i=a+b:c-1
bands=[bands,info(i)];
end
bands=str2num(bands);
%查找数据类型
a=strfind(info,'data type = ');
b=length('data type = ');
c=strfind(info,'interleave');
datatype=[];
for i=a+b:c-1
datatype=[datatype,info(i)];
end
datatype=str2num(datatype);
precision=[];
switch datatype
case 1
precision='uint8=>uint8';%头文件中datatype=1对应ENVI中数据类型为Byte,对应MATLAB中数据类型为uint8
case 2
precision='int16=>int16';%头文件中datatype=2对应ENVI中数据类型为Integer,对应MATLAB中数据类型为int16
case 12
precision='uint16=>uint16';%头文件中datatype=12对应ENVI中数据类型为Unsighed Int,对应MATLAB中数据类型为uint16
case 3
precision='int32=>int32';%头文件中datatype=3对应ENVI中数据类型为Long Integer,对应MATLAB中数据类型为int32
case 13
precision='uint32=>uint32';%头文件中datatype=13对应ENVI中数据类型为Unsighed Long,对应MATLAB中数据类型为uint32
case 4
precision='float32=>float32';%头文件中datatype=4对应ENVI中数据类型为Floating Point,对应MATLAB中数据类型为float32
case 5
precision='double=>double';%头文件中datatype=5对应ENVI中数据类型为Double Precision,对应MATLAB中数据类型为double
otherwise
pp='invalid datatype';%除以上几种常见数据类型之外的数据类型视为无效的数据类型
end
%查找数据格式
a=strfind(info,'interleave = ');
b=length('interleave = ');
c=strfind(info,'sensor type');
interleave=[];
for i=a+b:c-1
interleave=[interleave,info(i)];
end
interleave=strtrim(interleave);%删除字符串中的空格
%读取图像文件
fid = fopen(imgfilename, 'r');
data = multibandread(imgfilename ,[lines, samples, bands],precision,0,interleave,'ieee-le');
data= double(data);
datar=data(:,:,1);
datag=data(:,:,2);
datab=data(:,:,3);
% subplot(2,2,1),imagesc(datar),colormap(gray);
%subplot(2,2,2),imagesc(datag),colormap(gray);
%subplot(2,2,3),imagesc(datab),colormap(gray);
刚开始用这个程序可能会遇到一些问题,比如提示什么str2num的问题,最好打开hdr文件看一下是,有可能多一个空格或者少一个空格就会引起报错。
matlab读取img格式文件相关推荐
- matlab读取.mat格式文件
matlab读取.mat格式文件 13.1 数据基本操作 本节介绍基本的数据操作,包括工作区的保存.导入和文件打开. 13.1.1 文件的存储 MATLAB支持工作区的保存.用户可以将工作区或工作区中 ...
- Matlab之netCDF格式文件读取方法
Matlab之netCDF格式文件读取方法 目录 一.netCDF格式文件 1.简介 2.NetCDF的数据结构 二.Matlab读取netCDF使用到的函数 1.ncdisp() 2.ncinfo( ...
- MATLAB读取HDF格式的SST数据
利用MATLAB读取HDF格式的SST数据是比较简单的,MATLAB中有专门用于读取HDF的函数hdfread()与hdfinfo()就能很好的读取HDF文件.我们可以在读取文件的时候,通过显示文件中 ...
- python用os.system打开wav文件_使用python读取wav格式文件
** 使用python读取wav格式文件 ** - 基本概念 [采样频率] 即取样频率, 指每秒钟取得声音样本的次数.采样频率越高,声音的质量也就越好,声音的还原也就越真实,但同时它占的资源比较多.由 ...
- python xlrd读取excel-使用Python xlrd模块读取Excel格式文件的方法
这是一篇关于如何使用Python xlrd模块读取Excel格式文件的方法的文章,下面的python代码中使用 了xlrd模块的方法,这样就能够很方便的读取 excel 文件内容.同是这个xlrd模块 ...
- python获取的html转换为json,python读取XML格式文件并转为json格式
XML文件如下: 红楼梦书名> 曹雪芹作者> 描述贾宝玉和林黛玉的爱情故事主要内容> 人民文学出版社出版社> 图书> 一.python读取XML格式文件代码: impor ...
- nodejs json转对象_nodejs读取xlsx格式文件
# nodejs读取xlsx格式文件 安装 npm i node-xlsx -D // 或者 yarn add node-xlsx -D 使用 读取表格数据,并生成json对象 /*** @auth ...
- Matlab读取二进制数据文件
第一步:函数fopen打开文件 fid=fopen('文件名',读取方式) fid:句柄值 小于0表示打开失败:大于0表示打开成功 文件名:字符串,使用单引号(本文例子'savedata.dat') ...
- VTK重建CT图像,写入和读取STL格式文件
VTK重建CT图像(代码亲测无误) 1.读取数据 2.提取等值面 3.显示结果 一是要有输入源(jpegreader读入的数据) 二是要有相机(camera) 三是要有展示的窗口(window) #i ...
最新文章
- iOS 十六进制的颜色值转换为UIColor
- 湖南科技大学c语言程序设计b,2017年湖南科技大学计算机科学与工程学院826C语言程序设计与数据结构综合之数据结构考研题库...
- 导航菜单设计五步法——B端设计指南
- android 设置窗口透明效果,android - 如何将对话框窗口背景设置为透明,而不影响其边距...
- BZOJ 3277 串 BZOJ 3473 字符串 (广义后缀自动机、时间复杂度分析)
- 【6.2】hibernate_component
- jquery添加div实现消息聊天框
- UTF8,Unicode 的区别(zt)
- 威纶触摸屏键盘不显示数字_详解 | 威纶触摸屏数值输入元件应用
- Google地图开发总结
- 【51单片机】通过定时器中断 在8位数码管显示时间
- matlab计算股票的预期收益率,如何计算股票预期收益率
- Excel VBA 操作 Word(入门篇)
- STM32-实现us延时
- deactive(Deactive breakpoint)
- linux操作系统课程设计总结,操作系统课程设计心得+给老师的建议
- 李宏毅2021机器学习笔记——Regression
- PL\SQL破解版 ,带注册码,免费,不要积分,亲测
- SpringMVC基础--spring MVC配置详解
- el-table 排序
热门文章
- 华为应用市场名称问题
- cad面积计算机,用cad计算多个面积的方法步骤
- linux git rabit,Linux 安装 RabbitMQ
- NGFW module恢复密码操作方法
- Tracup体验报告
- 一致性哈希算法 mysql_一致性哈希算法 CARP 原理解析, 附 Golang 实现
- 计算机应用课程思政的应用,计算机类课程思政改革——以“Office高级应用”课程为例...
- Linux:更新 /usr/share/glib-2.0/schemas 目录
- 对Spring IOC的理解
- SSM网上校园订餐系统-javaweb, mysql