【记录】使用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)
相关推荐
Knight_AL7 分钟前
Flink 核心算子详解:map / flatMap / filter / process
大数据·python·flink
FJW0208149 分钟前
Python推导式与生成器
开发语言·python
Jerryhut15 分钟前
目标检测算法综述1
人工智能·目标检测·计算机视觉
深蓝电商API28 分钟前
Scrapy杜绝重复请求:Rfpdupfilter源码分析与优化
爬虫·python·scrapy
ID_1800790547331 分钟前
乐天(Letian)商品详情API接口的调用示例与代码实现
开发语言·python
南 阳38 分钟前
Python从入门到精通day10
linux·windows·python
mftang39 分钟前
Python 获取当前目录的多种方法
python
晨非辰41 分钟前
C++波澜壮阔40年|类和对象篇:拷贝构造与赋值重载的演进与实现
运维·开发语言·c++·人工智能·后端·python·深度学习
多米Domi01142 分钟前
0x3f 第36天 外卖8,9,树
数据结构·python·算法·leetcode
天才测试猿42 分钟前
Chrome浏览器+Postman做接口测试
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman