问题标签 [mayavi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 是否可以直接将仿射变换矩阵应用于 Mayavi ImageActor 对象?
我正在使用Mayavi渲染一些由 3D 体积内的多个 2D 平面组成的成像数据,其位置、方向和比例由 4x4 刚体仿射变换矩阵定义。每架飞机包括:
- 二维图像数据数组,我使用
mayavi.mlab.imshow
- 一组 ROI,由我分别使用
mayavi.mlab.points3d
和绘制的线和点组成mayavi.mlab.plot3d
。
我将我的点和线顶点从 2D 参考平面转换为 3D 空间,方法是用我的仿射矩阵点它们的坐标。根据我之前的问题/答案,我发现我可以ImageActor
单独设置对象的位置和方向,使用:
现在情节看起来像这样:
一切都很好地排列,但很难解释,因为平面在 z 中的间隔非常密集。我现在想做的是通过一些比例因子“拉伸”z轴。在点和线的情况下,这很容易做到——我所做的就是将所有转换后的 z 坐标乘以一个比例因子。
但是,我不知道如何对图像应用相同的转换。如果我只是缩放 z 位置,图像的旋转和缩放当然是错误的,并且我绘制的点/线将不再与图像落在同一平面上:
我需要做的是应用非刚性仿射变换,该变换结合了剪切以及旋转、平移和缩放到我的图像。
有什么方法可以手动将剪切应用于ImageActor
,或者甚至更好地直接应用我预先计算的任意 4x4 仿射矩阵?
python - 如何在 MayaVI 中使用仿射变换获取 3D 数据切片
我正在可视化在常规但非正交且未与“x”“y”“z”坐标网格对齐的标量场。通过将数据放入常规网格并像这样应用仿射变换,体积可视化效果很好
但是,当我尝试对相同数据进行 2D 切割平面时,我迷路了。我尝试过image_plane_widget
但scalar_cut_plane
没有成功:他们没有可以应用仿射变换的演员。或者,至少,我找不到如何获得它们。Mayavi 帮助系统也没有帮助:只记录了一些琐碎的东西。有人可以帮忙吗?
python - MayaVi:显示 mlab 段错误
我正在尝试学习 MayaVi,但被卡在打开的数字上。
在 mlab 中显示数字只会导致段错误。我绘制的内容似乎并不重要,所以我认为问题在于显示的行为,而不是我试图显示的对象。例如:
导致错误:
我在 Linux 上使用 Python 2.7.3、EPD 7.3-1(64 位)。
编辑:如果我尝试显示图像,我实际上会得到一个不同的错误,这是我的目标之一。
结果是
EDIT2:好的,打开数字绝对是一个问题,因为如果我只是测试:
我收到初始错误(段错误)。
scale - MayaVi:用“错误”比例标记轴
我的坐标轴上的比例可以与我的情节不同吗?
我在 mayavi 中显示图像,然后在其周围绘制一些 3D 形状。我所有的测量都与图像的大小(即以像素为单位)有关,因此事物处于正确的相对位置。
但是图像是银河系的,我想用距离单位(kpc)而不是像素来标记轴。基本上,我需要以像素为单位标记轴,然后将所有值除以 20 以获得 kpc。那可能吗?
谢谢!
python - 隐式定义体积的绘图表面
具有隐式定义的卷
为了
我将如何使用可用的 Python 模块(最好是 mayavi)绘制其外表面?
我知道函数 mlab.mesh,但我不明白它的输入。它需要三个二维数组,我不明白如何创建具有上述信息的数组。
编辑:
也许我的问题在于对 meshgrid() 函数或 numpy 的 mgrid 类的理解不足。我知道我必须以某种方式使用它们,但我并不完全理解它们的目的或这样的网格代表什么。
编辑:
我到了这个:
这会导致一个体积的等值面(对于 x*y*z=1),这并不是我想要的。我正在寻找的基本上是一种绘制任意表面的方法,例如“3d 多边形”(如果有的话)。
我创建了以下代码,它绘制了一个曲面(也适用于 mayavi)。我需要根据我的特定问题修改此代码,但要做到这一点,我需要了解为什么以及如何由三个 2d 数组定义 3d 表面?这些数组(x
和y
)z
代表什么?
python - 如何通过 mlab.surf 3dplot 3 列数据
数据是这样的:
下面是我的代码,它只能绘制一个平面
这是我期待的效果:http: //philipp.spitzer.priv.at/notes/attachment/wiki/PythonPlotting/PythonPlottingSurf.png
python - Python mayavi:向 3d 散点图添加点
我正在编写一个 python 应用程序来模拟粒子在 3 空间中的运动。我想绘制每个步骤的位置,在应用程序运行时更新绘图,在绘图上保留过去的位置。
我想用 mayavi 做到这一点,但据我所知,不能简单地将点添加到现有的散点图中,而必须一次性添加所有点。这不是我想要的。我想一次添加几个点,而不必将所有过去的点保留在内存中以在每一步重新绘制它们。
我一直在看的函数是 plot3d()。
http://docs.enthought.com/mayavi/mayavi/auto/mlab_helper_functions.html#mayavi.mlab.points3d
关于如何用 python mayavi 做我想做的事的任何想法?是否有另一个 python 3d 绘图包可以满足我的要求?
python - 如何使用来自 scipy.interpolate 的 griddata
我有一个包含一百万行的三列(x 像素、y 像素、z 值)数据。数据来自图像并且存在重复的 z 值。现在我需要制作一个曲面图。这张图片就是一个很好的例子。但现在输出图像为空。有人可以检查代码吗?
mayavi - Spyder 与 Mayavi
在后端使用 Canopy EPD 引擎时,是否可以使用不同的 IDE 作为前端?特别是,我想使用来自 Spyder 的 ipython 解释器的 mayavi.mlab 脚本。我正在使用运行 OSX 10.8 的 macbook pro。有没有办法设置这个?
我曾尝试使用 macports 设置 mayavi 和 spyder,但这似乎不起作用。我设法设置的唯一工作版本的 mayavi 从商业 Canopy 平台运行。因此,如果我不能让 macports mayavi 与 macports spyder 一起工作,我希望让 Canopy mayavi 与 spyder 一起工作。
谢谢。
阿德里安