Python讀取TIF影像的多種方法
TIFF簡介
TIFF(Tagged Image File Format)是一種常用的圖像文件格式,廣泛應用于各種領域,如醫(yī)學圖像、衛(wèi)星遙感、地理信息系統(tǒng)等。在Python中,我們可以使用一些庫來讀取和處理TIFF文件,這為我們分析和處理這些圖像數(shù)據(jù)提供了便利。
1. 安裝依賴庫
在使用Python讀取TIFF文件之前,我們需要安裝一些依賴庫。最常用的庫是PIL(Python Imaging Library),它提供了豐富的圖像處理功能。我們可以使用以下命令來安裝PIL庫:
pip install Pillow
2. 讀取TIFF文件
使用PIL庫,我們可以通過Image.open()方法來讀取TIFF文件。下面是一個示例代碼:
from PIL import Image # 讀取TIFF文件 image = Image.open('example.tiff') # 顯示圖像信息 print(f"圖像格式:{image.format}") print(f"圖像大?。簕image.size}") print(f"圖像模式:{image.mode}") from PIL import Image # 讀取TIFF文件 image = Image.open('example.tiff') # 顯示圖像信息 print(f"圖像格式:{image.format}") print(f"圖像大?。簕image.size}") print(f"圖像模式:{image.mode}")
在上面的代碼中,我們首先導入Image模塊,并使用open()方法讀取TIFF文件。然后,我們可以通過format屬性獲取圖像的格式,通過size屬性獲取圖像的大小,通過mode屬性獲取圖像的模式。
Python讀取TIF影像的幾種方法
導入模塊
import numpy as np import tifffile as tf #tifffile是tiff文件的讀取庫 from PIL import Image import cv2 as cv import gdal
TIF文件路徑
path = r'C:/Users/HP/Desktop/tif/jpeg2000/Test_Images/tif/boat4_2100.tif'
方法1:tiffile
img_tf = tf.imread(path) print(img_tf.shape) #(2960, 1976, 3)
方法2:PIL
img = Image.open(path) #可以讀取單通道影像,讀取3通道16位tif影像時報錯(PIL.UnidentifiedImageError: cannot identify image file),支持4通道8位影像 arr = np.array(img) print(arr.shape)
方法3:opencv
#arr = cv.imread(path,cv.IMREAD_UNCHANGED) #(2960, 1976) arr = cv.imread(path,1) #(2960, 1976, 3) 備注:4波段的影像在opencv的讀取方式中,顯示為前三個波段,而且讀取順序為BGR print(arr.shape)
方法4:gdal方法1
dataset = gdal.Open(path) arr = dataset.ReadAsArray() #(3, 2960, 1976) arr = arr.transpose(1, 2, 0) #(2960, 1976, 3) print(arr.shape)
方法5:gdal方法2
dataset = gdal.Open(path) bands = dataset.RasterCount for band in range(1, bands + 1): # 讀取波段 src_band = dataset.GetRasterBand(band) # 波段轉數(shù)組 band_arr = src_band.ReadAsArray() if band == 1: height = band_arr.shape[0] width = band_arr.shape[1] arr = np.zeros((height, width, bands), dtype=np.uint8) arr[:, :, band - 1] = band_arr print(arr.shape) #(2960, 1976, 3)
到此這篇關于Python讀取TIF影像的幾種方法的文章就介紹到這了,更多相關Python讀取TIF影像內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python中print和return的作用及區(qū)別解析
print的作用是輸出數(shù)據(jù)到控制端,就是打印在你能看到的界面上。這篇文章給大家介紹Python中print和return的作用及區(qū)別解析,感興趣的朋友跟隨小編一起看看吧2019-05-05Python?獲取指定開頭指定結尾所夾中間內(nèi)容(推薦)
獲取文章中指定開頭、指定結尾中所夾的內(nèi)容。其中,開頭和結尾均有多種,但最多也就十幾種,所以代碼還是具有可行性的,今天小編給大家介紹通過Python?獲取指定開頭指定結尾所夾中間內(nèi)容,感興趣的朋友一起看看吧2023-02-02python 對任意數(shù)據(jù)和曲線進行擬合并求出函數(shù)表達式的三種解決方案
這篇文章主要介紹了python 對任意數(shù)據(jù)和曲線進行擬合并求出函數(shù)表達式的三種解決方案,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02