python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python读取数据

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

作者:静观云起

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

您可能感兴趣的文章:
阅读全文