gpt4 book ai didi

python - mayavi - 以编程方式设置图像的 [x,y,z] 范围

转载 作者:行者123 更新时间:2023-12-04 15:12:56 26 4
gpt4 key购买 nike

我有一些包含多个 2D 图像的数据,我想使用 mayavi2 (v4.3.0) 在相对于彼此的特定 [x,y,z] 位置渲染这些图像。 .

From the documentation看来我应该可以用 mlab.imshow() 做到这一点.不幸的是,当我调用 imshow 时,mayavi 会抛出异常。指定 extent参数( AttributeError: 'ImageActor' object has no attribute 'actor' )。

我也尝试通过修改 im.mlab_source.x,y,z... 直接设置 x、y 和 z 数据。 .奇怪的是,虽然这正确地改变了 x 和 y 的范围,但它对 z 位置没有任何影响,即使 im.mlab_source.z明显变化。

这是一个可运行的示例:

import numpy as np
from scipy.misc import lena
from mayavi import mlab

def normal_imshow(img=lena()):
return mlab.imshow(img,colormap='gray')

def set_extent(img=lena()):
return mlab.imshow(img,extent=[0,100,0,100,50,50],colormap='cool')

def set_xyz(img=lena()):
im = mlab.imshow(img,colormap='hot')
src = im.mlab_source
print 'Old z :',src.z
src.x = 100*(src.x - src.x.min())/(src.x.max() - src.x.min())
src.y = 100*(src.y - src.y.min())/(src.x.max() - src.y.min())
src.z[:] = 50
print 'New z :',src.z
return im

if __name__ == '__main__':

# this works
normal_imshow()

# # this fails (AttributeError)
# set_extent()

# weirdly, this seems to work for the x and y axes, but does not change
# the z-postion even though data.z does change
set_xyz()

最佳答案

好吧,原来这是一个 known bug在马亚维。但是,可以更改 ImageActor 的方向、位置和比例。对象创建后:

obj = mlab.imshow(img)
obj.actor.orientation = [0, 0, 0] # the required orientation
obj.actor.position = [0, 0, 0] # the required position
obj.actor.scale = [0, 0, 0] # the required scale

关于python - mayavi - 以编程方式设置图像的 [x,y,z] 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15845338/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com