Python读取TIFF多通道图像

Posted The Code Ocean

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python读取TIFF多通道图像相关的知识,希望对你有一定的参考价值。

1.PIL

from PIL import Image
im = Image.open("filename") 

支持单通道及多通道Uint8 TIFF图像读取,读取单通道Uint16 TIFF图像转为Uint8处理,直接读取Uint16 TIFF多通道图像出错,错误信息:

2.OpenCV

import cv2
cv2.imread("filename",flags)

对于cv2,imread的关于通道数和位深的flags有四种选择:

IMREAD_UNCHANGED = -1#不进行转化,比如保存为了16位的图片,读取出来仍然为16位。
IMREAD_GRAYSCALE = 0#进行转化为灰度图,比如保存为了16位的图片,读取出来为8位,类型为CV_8UC1。
IMREAD_COLOR = 1#进行转化为RGB三通道图像,图像深度转为8位
IMREAD_ANYDEPTH = 2#保持图像深度不变,进行转化为灰度图。
IMREAD_ANYCOLOR = 4#若图像通道数小于等于3,则保持原通道数不变;若通道数大于3则只取取前三个通道。图像深度转为8位

对于多通道TIFF图像,若要保证图像数据的正常读取,显然要选择IMREAD_UNCHANGED作为imread的flags设置值。

 

*未完待续

 

以上是关于Python读取TIFF多通道图像的主要内容,如果未能解决你的问题,请参考以下文章

Python:读写 TIFF 16 位,三通道,彩色图像

231?? 利用 IDL 读取 TIFF 数据

使用光栅显示 tiff 图像的特定部分,而无需加载整个文件

在python中将tiff转换为jpeg

GDAL:Python GDAL.Translate可以将TIFF文件转换为JPEG或PNG数组 - 而不是写入文件吗?

java:BufferedImage判断图像通道顺序并转RGB/BGR