Python实现读取mat、tif和hdr格式数据
前言
遥感影像数据大多是以tif格式或者以hdr格式进行存储,并且这两种格式会保存坐标信息;但是以mat格式进行存储,则不会保留坐标信息。下面将详细介绍如何使用python来读取这三种格式的数据
mat格式
利用scipy库读取
import scipy.io as sio path = r'../01_dataset/data_mat.mat' #数据路径 data_01 = sio.loadmat(path)['data'] #读取数据
tif格式
利用imageio库读取
import imageio path = r'../01_dataset/data.tif' #数据路径 data_02 = imageio.imread(path).transpose(1,2,0) #读取数据,并将光谱维放到第三维
利用gdal库读取
from osgeo import gdal
# 定义一个读取tif数据的函数
def readTif(fileName):
dataset = gdal.Open(fileName)
if dataset == None:
print(fileName+"文件无法打开")
return dataset
path = r'../01_dataset/data.tif' #数据路径
data_03 = readTif(path) #读取数据
hdr格式
利用spectral库读取
import spectral import numpy as np path = r'../01_dataset/data_hdr.hdr' #数据路径 data_04 = spectral.open_image(path) #读取数据 img = data_04.load() #加载数据 img = np.array(img) #一般需要将数据转为数组形式
方法补充
使用PIL库来读取和处理TIF格式数据
1. 安装PIL库
在使用PIL库之前,我们需要先安装它。可以使用pip命令来安装PIL库:
pip install pillow
2. 读取TIF格式数据
在使用PIL库读取TIF格式数据之前,我们首先需要导入相关的库和模块:
from PIL import Image import numpy as np
接下来,我们可以使用Image.open()函数来打开TIF格式的图像文件,并将其读取为PIL对象:
img = Image.open('example.tif')
这样,我们就成功地将TIF格式的图像文件读取为了PIL对象img。
使用OpenCV读取tiff数据
import cv2
import numpy as np
# 读取tiff文件
im = cv2.imread('example.tiff', cv2.IMREAD_UNCHANGED)
# 显示图像
cv2.imshow('Image', im)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 打印图像尺寸和通道数
print('Image size:', im.shape[:2])
print('Channels:', im.shape[2])到此这篇关于Python实现读取mat、tif和hdr格式数据的文章就介绍到这了,更多相关Python读取数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Pandas数据类型自行变换及数据类型转换失败问题分析与解决
这篇文章主要介绍了Pandas数据类型自行变换及数据类型转换失败问题分析与解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-06-06
python用pyinstaller封装exe双击后疯狂闪退解决办法
本文主要介绍了python用pyinstaller封装exe双击后疯狂闪退解决办法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2021-11-11
Python Socket实现简单TCP Server/client功能示例
这篇文章主要介绍了Python Socket实现简单TCP Server/client功能,结合实例形式分析了Python基于socket创建TCP服务器Server与客户端client相关实现步骤与操作技巧,需要的朋友可以参考下2017-08-08
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
这篇文章主要介绍了Python中的可迭代对象、迭代器、For循环工作机制、生成器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-03-03
numpy矩阵乘法中的multiply,matmul和dot的使用
本文主要介绍了numpy矩阵乘法中的multiply,matmul和dot的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-02-02


最新评论