Python Mayavi可以渲染具有透明背景的人物场景吗?

Python Mayavi可以渲染具有透明背景的人物场景吗?,python,background,transparent,mayavi,Python,Background,Transparent,Mayavi,我正在使用mayavi.mlab生成网格图,并希望背景不透明度为0。(或透明的)。这可能吗?您不能直接设置透明度。但是,您可以使用背景色(与前景色不同)保存图形,并使用ImageMagick删除背景 convert pure_beauty.png -transparent white pure_transparent_beauty.png 比如说 mlab.figure(size = (1024,768),\ bgcolor = (1,1,1), fgcolor = (

我正在使用mayavi.mlab生成网格图,并希望背景不透明度为0。(或透明的)。这可能吗?

您不能直接设置透明度。但是,您可以使用背景色(与前景色不同)保存图形,并使用ImageMagick删除背景

convert pure_beauty.png -transparent white pure_transparent_beauty.png
比如说

mlab.figure(size = (1024,768),\
            bgcolor = (1,1,1), fgcolor = (0.5, 0.5, 0.5))

# Your fantastic plotting script

mlab.save('pure_beauty.png')
现在使用ImageMagick删除背景

convert pure_beauty.png -transparent white pure_transparent_beauty.png

如图所示。

如果您的目标是将mayavi图形集成到matplotlib图形中,则这是可能的。您可以使用
mlab.screenshot
获取RGBA值的numpy数组,
mlab
将背景像素自动设置为alpha
0
。然后,您可以通过
imshow
将此RGBA矩阵添加到matplotlib图形中。示例(改编自):


您也可以使用
plt.imsave(arr=imgmap,fname=“foo.png”)

将RGBA数组直接保存到文件中,您希望得到什么结果?更准确地说,您希望如何处理这种透明背景?您正在尝试在其他背景上使用一些3D渲染对象创建图像吗?或者,您正试图让窗口管理器将场景合成到其他背景上?第一种情况可能是通过后处理帮助实现的。第二个肯定不是。请详细说明您正在尝试执行的操作。当我运行该确切代码时,它不起作用(即,mayavi图形的背景为灰色而不是透明)。它对我来说效果很好:
mayavi
version
4.5.0
&
matplotlib
version
1.5.1