Python實(shí)現(xiàn)讀取mat、tif和hdr格式數(shù)據(jù)
前言
遙感影像數(shù)據(jù)大多是以tif格式或者以hdr格式進(jìn)行存儲(chǔ),并且這兩種格式會(huì)保存坐標(biāo)信息;但是以mat格式進(jìn)行存儲(chǔ),則不會(huì)保留坐標(biāo)信息。下面將詳細(xì)介紹如何使用python來讀取這三種格式的數(shù)據(jù)
mat格式
利用scipy庫讀取
import scipy.io as sio path = r'../01_dataset/data_mat.mat' #數(shù)據(jù)路徑 data_01 = sio.loadmat(path)['data'] #讀取數(shù)據(jù)
tif格式
利用imageio庫讀取
import imageio path = r'../01_dataset/data.tif' #數(shù)據(jù)路徑 data_02 = imageio.imread(path).transpose(1,2,0) #讀取數(shù)據(jù),并將光譜維放到第三維
利用gdal庫讀取
from osgeo import gdal
# 定義一個(gè)讀取tif數(shù)據(jù)的函數(shù)
def readTif(fileName):
dataset = gdal.Open(fileName)
if dataset == None:
print(fileName+"文件無法打開")
return dataset
path = r'../01_dataset/data.tif' #數(shù)據(jù)路徑
data_03 = readTif(path) #讀取數(shù)據(jù)
hdr格式
利用spectral庫讀取
import spectral import numpy as np path = r'../01_dataset/data_hdr.hdr' #數(shù)據(jù)路徑 data_04 = spectral.open_image(path) #讀取數(shù)據(jù) img = data_04.load() #加載數(shù)據(jù) img = np.array(img) #一般需要將數(shù)據(jù)轉(zhuǎn)為數(shù)組形式
方法補(bǔ)充
使用PIL庫來讀取和處理TIF格式數(shù)據(jù)
1. 安裝PIL庫
在使用PIL庫之前,我們需要先安裝它??梢允褂胮ip命令來安裝PIL庫:
pip install pillow
2. 讀取TIF格式數(shù)據(jù)
在使用PIL庫讀取TIF格式數(shù)據(jù)之前,我們首先需要導(dǎo)入相關(guān)的庫和模塊:
from PIL import Image import numpy as np
接下來,我們可以使用Image.open()函數(shù)來打開TIF格式的圖像文件,并將其讀取為PIL對象:
img = Image.open('example.tif')
這樣,我們就成功地將TIF格式的圖像文件讀取為了PIL對象img。
使用OpenCV讀取tiff數(shù)據(jù)
import cv2
import numpy as np
# 讀取tiff文件
im = cv2.imread('example.tiff', cv2.IMREAD_UNCHANGED)
# 顯示圖像
cv2.imshow('Image', im)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 打印圖像尺寸和通道數(shù)
print('Image size:', im.shape[:2])
print('Channels:', im.shape[2])到此這篇關(guān)于Python實(shí)現(xiàn)讀取mat、tif和hdr格式數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Python讀取數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中break語句和continue語句的用法講解
在Python中,break語句和continue語句一般用于循環(huán)語句中,這篇文章主要介紹了Python中break語句和continue語句的用法小結(jié),需要的朋友可以參考下2022-12-12
python3格式化字符串 f-string的高級用法(推薦)
從Python 3.6開始,f-string是格式化字符串的一種很好的新方法。與其他格式化方式相比,它們不僅更易讀,更簡潔,不易出錯(cuò),而且速度更快!本文重點(diǎn)給大家介紹python3格式化字符串 f-string的高級用法,一起看看吧2020-03-03
Pyhthon中使用compileall模塊編譯源文件為pyc文件
這篇文章主要介紹了Pyhthon中使用compileall模塊編譯源文件為pyc文件,需要的朋友可以參考下2015-04-04
python 協(xié)程中的迭代器,生成器原理及應(yīng)用實(shí)例詳解
這篇文章主要介紹了python 協(xié)程中的迭代器,生成器原理及應(yīng)用,結(jié)合具體實(shí)例形式詳細(xì)分析了Python協(xié)程中的迭代器,生成器概念、原理及應(yīng)用操作技巧,需要的朋友可以參考下2019-10-10

