【记录】使用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)
相关推荐
橙露4 分钟前
CGO调用OpenCV实现多角度模板匹配性能分析
人工智能·opencv·计算机视觉
超龄超能程序猿5 分钟前
X-AnyLabeling 全功能操作指南
运维·yolo·计算机视觉
光羽隹衡7 分钟前
计算机视觉--Opencv(边缘检测)
人工智能·opencv·计算机视觉
多米Domi01112 分钟前
0x3f 第43天 黑马点评全量复习一遍 + 栈两题
开发语言·数据结构·python·算法·leetcode
小二·15 分钟前
Python Web 开发进阶实战:AI 原生硬件接口 —— 在 Flask + MicroPython 中构建边缘智能设备控制平台
前端·人工智能·python
deephub20 分钟前
用 PydanticAI 让 LLM 输出变成可信赖的 Python 对象
人工智能·python·大语言模型·agent
白小筠21 分钟前
迭代器与生成器
开发语言·python
带带弟弟学爬虫__22 分钟前
速通新Baidu Frida检测
前端·javascript·vue.js·python·网络爬虫
b20772122 分钟前
Flutter for OpenHarmony 身体健康状况记录App实战 - 运动分析实现
python·flutter·harmonyos
Tansmjs25 分钟前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python