python读取tiff图像rgb值_Python:读写TIFF 16位、三通道、彩色图像

博主正在寻找一种方法在Python中导入和处理每通道16位、3通道的TIFF图像。尝试了PIL、libtiff和OpenCV等库,但未能成功保留每个通道的16位深度。目前的解决方案是通过ImageMagick转换为PNG再用matplotlib.pyplot.imread读取。同时,博主还遇到了保存16位PNG的难题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有没有一种方法可以在Python中导入每通道16位、3通道TIFF图像?

我还没有找到一种方法,可以在处理TIFF格式时保留每个通道16位的深度。我希望有一个乐于助人的灵魂能找到解决办法。

以下是我迄今为止没有成功的尝试和结果:import numpy as np

import PIL.Image as Image

import libtiff

import cv2

im = Image.open('a.tif')

# IOError: cannot identify image file

tif = libtiff.TIFF.open('a.tif')

im = tif.read_image()

# im only contains one of the three channels. im.dtype is uint16 as desired.

im = []

for i in tif.iter_images():

# still only returns one channel

im = np.array(cv2.imread('a.tif'))

# im.dtype is uint8 and not uint16 as desired.

# specifying dtype as uint16 does not correct this

到目前为止,我找到的唯一解决方案是使用ImageMagick将图像转换为PNG。然后bog标准matplotlib.pyplot.imread读取PNG文件,没有任何问题。

我遇到的另一个问题是将任何numpy数组保存为16位PNG文件,到目前为止这也不是一个简单的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值