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做一个久坐提醒小助手的示例代码

    用Python做一个久坐提醒小助手的示例代码

    这篇文章主要介绍了用Python做一个久坐提醒小助手的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Python+OpenCV实现在图像上绘制矩形

    Python+OpenCV实现在图像上绘制矩形

    这篇文章主要介绍了如何利用Python和OpenCV实现在图像上绘制任意大小的矩形,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下
    2022-03-03
  • 一个超级简单的python web程序

    一个超级简单的python web程序

    这篇文章主要介绍了一个超级简单的python web程序,需要的朋友可以参考下
    2014-09-09
  • python实现微信自动回复及批量添加好友功能

    python实现微信自动回复及批量添加好友功能

    这篇文章主要介绍了python实现微信自动回复及python 批量生成微信添加好友截图功能的实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • Python学习之函数的定义与使用详解

    Python学习之函数的定义与使用详解

    函数是具有某种特定功能的代码块,可以重复使用(在前面数据类型相关章节。它使得我们的程序更加模块化,不需要编写大量重复的代码。本文将详细介绍Python中函数的定义与使用,感兴趣的可以学习一下
    2022-03-03
  • Python生成器以及应用实例解析

    Python生成器以及应用实例解析

    这篇文章主要介绍了Python生成器以及应用实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Mac中pyenv的安装与使用教程

    Mac中pyenv的安装与使用教程

    pyenv支持linux下python多版本的共存和版本之间切换,非常方便,下面这篇文章主要给大家介绍了关于Mac中pyenv安装与使用的相关资料,需要的朋友可以参考下
    2022-02-02
  • python机器学习之神经网络(三)

    python机器学习之神经网络(三)

    这篇文章主要为大家详细介绍了python机器学习之神经网络第三篇,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • python将字典列表导出为Excel文件的方法

    python将字典列表导出为Excel文件的方法

    这篇文章主要介绍了python将字典列表导出为Excel文件的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • Python 结合opencv实现图片截取和拼接代码实践

    Python 结合opencv实现图片截取和拼接代码实践

    这篇文章主要介绍了Python 结合opencv实现图片截取和拼接代码实践,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09

最新评论