【记录】使用Python读取Tiff图像的几种方法

文章目录

本文总结了使用 PIL Image, cv2, gdal.Open三种python package 读取多通道Tiff格式遥感影像的方法。

PIL.Image

PIL对Tiff只支持两种格式的图像:

  1. 多通道8bit图像
  2. 单通道int16, int32, float32图像

多通道多bit的tiff图像PIL不支持读取。

python 复制代码
file = Image.open(tiff_file))
# 也可以读取之后进行格式转换:
img = np.array(Image.open(tiff_file)).astype(np.float32)

cv2

cv2的读取可以选择一下几种类型:

python 复制代码
img = cv2.imread(tiff_file, arg)
# arg = -1: 8bit原通道
# arg = 2: 原深度单通道
# arg = 3: 原深度三通道

gdal

python 复制代码
from osgeo import gdal
img = gdal.Open(tiff_file)
# 查看通道数
img.RasterCount

# 读取至数组格式
img = img.ReadAsArray()
print(img.shape) > 会得到(channel, height, widht)
img = img.transpose(1,2,0) > 得到(height, width, channel)

print(np.array(img).dtype)

img = np.array(img, dtype = np.uint16)
相关推荐
何以解忧唯有撸码17 小时前
c# + YOLODotNet+OpenCVSharp 实现物品轨迹追踪
计算机视觉·c#·winform·yolov8·opencvsharp
飞Link19 小时前
什么是 AirSim?一文读懂无人机仿真平台
python·算法·无人机
曲径海盗19 小时前
【Python 学习第 38 天】for 循环
python·学习笔记·编程入门
在世修行20 小时前
智学文枢:变式题生成引擎
python·ai·pyside·题目生成
On The Road :1 天前
Java 多线程详解:从入门到线程安全
java·python·安全
岁月宁静1 天前
如何设计支持 Skills 的 Agent?一套可扩展的四层架构
python·agent
岁月宁静1 天前
CrewAI 快速上手:10 分钟搭建你的第一个 Agent 团队
python·agent
曲径海盗1 天前
【Python 学习第 40 天】for 循环
python·学习笔记·编程入门
专注仿真1 天前
知识问答大模型-rag算法详解
人工智能·python·控制算法
染指11101 天前
158.Agent-LangGraph-子图(共享状态和不共享状态模式)
开发语言·人工智能·python·ui·agent·agents