在Python中阅读第五个TIFF的频道?

时间:2018-04-28 09:14:13

标签: python maya tiff

我有一些TIFF文件是Maya渲染器的输出,我需要将它们与一些真实的镜头合成。 TIFF文件有5个频道,rgba + depth频道用于合成。但是,我尝试过的所有TIFF加载库似乎都丢弃了第5层。

有没有办法用图像的其余部分加载它?

1 个答案:

答案 0 :(得分:1)

你可以这样做:

import cv2

image = cv2.imread('yourImage.tiff', cv2.IMREAD_UNCHANGED)
print image.shape 

channels = cv2.split(image)

channels[0] # R channel
channels[1] # G channel
channels[2] # B channel
channels[3] # A channel
channels[4] # Z channel

但是对于合成,您应该使用具有不同压缩算法的16位或32位OpenEXR文件格式,而不是TIFFEXR v1EXR v2支持最多1023个渲染频道,而The Foundry NUKE可以阅读这些频道。 Read about OpenEXR here

Z频道(a.k.a。zDepth)不适合合成,因为它带来了边缘人工制品。请改为使用Deep渲染通道(您可以在OpenEXR 2.0中存储深度传递)。 Read about Z pass artefacts here

同样在EXR文件中,您可以存储各种AOV:法线,点位置,UV,环境遮挡,阴影,视差,运动矢量等...... Read about Deep compositing here