[英]Plotting an image in 3D resulting in very slow interaction
我正在使用此处提出的解决方案,使用matplotlib
在3D中绘制图像。 但是,即使对于非常合理的图像尺寸( 128x128
),刷新率也非常慢。 在我的电脑上,以下不能超过2帧/秒。
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
import numpy as np
X, Y = np.meshgrid(np.arange(128), np.arange(128))
Z = np.zeros_like(X)
im = np.sin(X/10 + Y/100)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, facecolors=plt.cm.BrBG(im), shade=False)
plt.show()
有没有办法加速上述情节? 我知道mplot3d不支持硬件加速 ,但我觉得上面的简单情节应该更快,即使在CPU上也是如此。
您可以尝试mayaVi库以获得更好的交互式数据可视化。
#import matplotlib.pyplot as plt
#from mpl_toolkits import mplot3d
import numpy as np
from mayavi import mlab
X, Y = np.meshgrid(np.arange(128), np.arange(128))
Z = np.zeros_like(X)
im = np.sin(X/10 + Y/100)
#fig = plt.figure()
#x = fig.add_subplot(111, projection='3d')
src = mlab.pipeline.array2d_source(im)
warp = mlab.pipeline.warp_scalar(src)
normals = mlab.pipeline.poly_data_normals(warp)
surf = mlab.pipeline.surface(normals)
mlab.show()
#ax.plot_surface(X, Y, Z, rstride=1, cstride=1, facecolors=plt.cm.BrBG(im), shade=False)
#plt.show()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.