Python实现读取mat、tif和hdr格式数据

 更新时间:2023年12月15日 14:21:44   作者:静观云起  
遥感影像数据大多以tif格式或者以hdr格式进行存储,如果以mat格式进行存储,不会保留坐标信息,本文将详细介绍如何使用python来读取这三种格式的数据,需要的可以参考下

前言

遥感影像数据大多是以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读取数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中break语句和continue语句的用法讲解

    Python中break语句和continue语句的用法讲解

    在Python中,break语句和continue语句一般用于循环语句中,这篇文章主要介绍了Python中break语句和continue语句的用法小结,需要的朋友可以参考下
    2022-12-12
  • python3格式化字符串 f-string的高级用法(推荐)

    python3格式化字符串 f-string的高级用法(推荐)

    从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快!本文重点给大家介绍python3格式化字符串 f-string的高级用法,一起看看吧
    2020-03-03
  • 如何基于python生成list的所有的子集

    如何基于python生成list的所有的子集

    这篇文章主要介绍了如何基于python生成list的所有的子集,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 超级好用的4个Python命令行可视化库

    超级好用的4个Python命令行可视化库

    通常大家都是在自己的电脑上跑程序,直接是可以可视化相应的结果.如果是在服务器上的话,使用终端,是不太方便查看结果. 今天,小F就给大家介绍4个可以在命令行中使用的Python库. 分别是Bashplotlib、tqdm、PrettyTable、Colorama,需要的朋友可以参考下
    2021-06-06
  • Pyhthon中使用compileall模块编译源文件为pyc文件

    Pyhthon中使用compileall模块编译源文件为pyc文件

    这篇文章主要介绍了Pyhthon中使用compileall模块编译源文件为pyc文件,需要的朋友可以参考下
    2015-04-04
  • python 协程中的迭代器,生成器原理及应用实例详解

    python 协程中的迭代器,生成器原理及应用实例详解

    这篇文章主要介绍了python 协程中的迭代器,生成器原理及应用,结合具体实例形式详细分析了Python协程中的迭代器,生成器概念、原理及应用操作技巧,需要的朋友可以参考下
    2019-10-10
  • pytest注解使用小结

    pytest注解使用小结

    本文介绍了pytest测试框架中常用的一些装饰器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-02-02
  • Matplotlib绘图基础之样式表详解

    Matplotlib绘图基础之样式表详解

    Matplotlib库 由于诞生的比较早,所以其默认的显示样式很难符合现在的审美,不过经过版本更迭之后,现在 Matplotlib 已经内置了很多样式表,下面我们就来看看这些样式表的使用吧
    2023-08-08
  • python中f字符串以及其常见用法总结

    python中f字符串以及其常见用法总结

    python中的f是format函数的缩写,用于格式化输出,下面这篇文章主要给大家介绍了关于python中f字符串以及其常见用法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • 用Python生成会跳舞的美女

    用Python生成会跳舞的美女

    大家好,本篇文章主要讲的是用Python生成会跳舞的美女,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01

最新评论