使用Python获取TIF图像中的层数

3

我有一个包含5个层(不是颜色通道而是层)的tif图像。如何使用Python获取此tif文件中的层数?

我尝试了PIL.Image im.n_frames和cv2.imreadmulti,它们都显示图像只有一层。


1
嗨,这可能会引起您的兴趣:https://stackoverflow.com/questions/13477292/how-to-detect-if-an-tif-image-has-layers-with-python-preferably-with-pil - jspcal
谢谢。我试过了。但是我没有找到显示层数量的方法。 - Yuriki
1
这是缺失的PDF文件TIFFPhotoshop的链接。 - Yuriki
1个回答

1
这段文字的意思是:这种类型的TIFF文件中的图层被隐藏在Adobe Photoshop特定的ImageResources(#34377)和ImageSourceData(#37724)TIFF标签中。
使用psdtags库来解析这些标签,例如:
from psdtags import TiffImageSourceData

isd = TiffImageSourceData.fromtiff('5_layers.tif')
number_layers = len(isd.layers)
for layer in isd.layers:
    layer.name
    for channel in layer.channels:
        ch = channel.data  # a numpy array

运行 python -m psdtags 5_layers.tif 命令,可以预览 TIFF 文件中的图层信息。

1
psdtags 官方只支持 Python 版本 >=3.8。但是我有限制:必须使用 Python 3.7。不过,通过一些不太规范的方法,现在它可以在 3.7.2 上运行了。我使用了 pip install --ignore-requires-python psdtags 命令,然后从 psdtags.py 中删除了所有位置参数 (/),并安装了一些缺失的库。 - Yuriki

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接