【记录】使用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)
相关推荐
码来的小朋友2 分钟前
[Python] 制作小游戏创意之3D魔方
python·3d·pygame
老徐聊GEO6 分钟前
芜湖Ai搜索获客亲测有效案例分享
人工智能·python
叫我:松哥11 分钟前
基于机器学习和flask的体育健身风险智能分析系统,系统集成DeepSeek、聚类算法、分类算法等,准确率达90%
人工智能·python·神经网络·算法·机器学习·flask·聚类
码云骑士12 分钟前
03-Python可变对象与不可变对象(下)-深浅拷贝的底层真相
开发语言·python
与代码不die不休12 分钟前
RTX5060显卡torch和torch_radon库安装避坑指南(仅linux系统)
linux·图像处理·python·深度学习
砍材农夫13 分钟前
python环境|pip|uv|venv|Conda区别
后端·python·conda·pip·uv
向量引擎14 分钟前
AI API 正在进入“请求生命周期治理”阶段:从模型迁移、Agent 接入到成本与安全排错的工程化方法
java·人工智能·python·aigc·ai编程·ai写作·gpu算力
梦想不只是梦与想16 分钟前
Python 中的线程(Thread)
python·线程·thread
热心不起来的市民小周17 分钟前
100种动物语义分割数据集(A100-Seg)
python·深度学习·计算机视觉
DrMaker19 分钟前
【无标题】
软件测试·python·测试工具·pyqt