Python實現(xiàn)讀取mat、tif和hdr格式數(shù)據(jù)
前言
遙感影像數(shù)據(jù)大多是以tif格式或者以hdr格式進行存儲,并且這兩種格式會保存坐標(biāo)信息;但是以mat格式進行存儲,則不會保留坐標(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 # 定義一個讀取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ù)組形式
方法補充
使用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實現(xiàn)讀取mat、tif和hdr格式數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Python讀取數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Pandas數(shù)據(jù)類型自行變換及數(shù)據(jù)類型轉(zhuǎn)換失敗問題分析與解決
這篇文章主要介紹了Pandas數(shù)據(jù)類型自行變換及數(shù)據(jù)類型轉(zhuǎn)換失敗問題分析與解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06使用python實現(xiàn)學(xué)生信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了使用python實現(xiàn)學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-02-02python用pyinstaller封裝exe雙擊后瘋狂閃退解決辦法
本文主要介紹了python用pyinstaller封裝exe雙擊后瘋狂閃退解決辦法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11Python Socket實現(xiàn)簡單TCP Server/client功能示例
這篇文章主要介紹了Python Socket實現(xiàn)簡單TCP Server/client功能,結(jié)合實例形式分析了Python基于socket創(chuàng)建TCP服務(wù)器Server與客戶端client相關(guān)實現(xiàn)步驟與操作技巧,需要的朋友可以參考下2017-08-08淺談Python中的可迭代對象、迭代器、For循環(huán)工作機制、生成器
這篇文章主要介紹了Python中的可迭代對象、迭代器、For循環(huán)工作機制、生成器,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03numpy矩陣乘法中的multiply,matmul和dot的使用
本文主要介紹了numpy矩陣乘法中的multiply,matmul和dot的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02