Python Mayavi可以渲染具有透明背景的人物场景吗?
我正在使用mayavi.mlab生成网格图,并希望背景不透明度为0。(或透明的)。这可能吗?您不能直接设置透明度。但是,您可以使用背景色(与前景色不同)保存图形,并使用ImageMagick删除背景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 = (
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
将背景像素自动设置为alpha0
。然后,您可以通过imshow
将此RGBA矩阵添加到matplotlib图形中。示例(改编自):
您也可以使用
plt.imsave(arr=imgmap,fname=“foo.png”)
将RGBA数组直接保存到文件中,您希望得到什么结果?更准确地说,您希望如何处理这种透明背景?您正在尝试在其他背景上使用一些3D渲染对象创建图像吗?或者,您正试图让窗口管理器将场景合成到其他背景上?第一种情况可能是通过后处理帮助实现的。第二个肯定不是。请详细说明您正在尝试执行的操作。当我运行该确切代码时,它不起作用(即,mayavi图形的背景为灰色而不是透明)。它对我来说效果很好:mayavi
version4.5.0
&matplotlib
version1.5.1
。