我在 VTK 中有一个图像,正在使用 vtkImageViewer2 查看,并且我想放大用户单击的点。我在 Java 工作。有谁知道如何做到这一点?
谢谢
我正在使用 ActiViz .NET (VTK),但遇到了一个小问题。
当我注册一个事件(例如 LeftButtonReleaseEvt)时,我无法找到我单击的 RenderWindowControl 上的位置。该事件被称为。
...
rwcVtk.RenderWindow.GetInteractor().LeftButtonPressEvt += new vtkObject.vtkObjectEventHandler(RenderWindow_LeftButtonReleaseEvt);
}
void RenderWindow_LeftButtonReleaseEvt(vtkObject sender, vtkObjectEventArgs e)
{
//TODO: Where did i click?
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我吗?我认为没有太多关于这方面的文档。
我在理解 VTK 所涉及的转换方面遇到了深刻的问题。OpenGL 有相当好的文档,我的印象是 VTK 与 OpenGL 非常相似(在很多方面都是如此)。但当谈到转型时,情况似乎完全不同。
这是一个关于所涉及的变换的很好的 OpenGL 文档: http://www.songho.ca/opengl/gl_transform.html
OpenGL中的透视投影矩阵为:

我想看看在 VTK 中应用这个公式是否会给出 VTK 的投影矩阵(通过与 VTK 投影矩阵交叉检查)。
相关相机和渲染器参数:
camera->SetPosition(0,0,20);
camera->SetFocalPoint(0,0,0);
double crSet[2] = {10, 1000};
renderer->GetActiveCamera()->SetClippingRange(crSet);
double windowSize[2];
renderWindow->SetSize(1280,720);
renderWindowInteractor->GetSize(windowSize);
proj = renderer->GetActiveCamera()->GetProjectionTransformMatrix(windowSize[0]/windowSize[1], crSet[0], crSet[1]);
Run Code Online (Sandbox Code Playgroud)
我为此配置得到的投影变换矩阵是:

投影矩阵的 (3,3) 和 (3,4) 值(假设行和列的索引为 1 到 4)应为 - (f+n)/(fn) 和 -2*f*n /(fn) 分别。在我的 VTK 相机设置中,nearz 为 10,farz 为 1000,因此我应该在矩阵的 (3,3) 和 (3,4) 位置分别得到 -1.020 和 -20.20。但它是-1010和-10000。
我已经更改了剪切范围值以查看更改,并且 (3,3) 位置始终接近 z+farz,这对我来说没有任何意义。另外,如果有人能解释为什么 (1,1) 和 (2,2) 位置上的值是 3.7320,那就太好了。当我更改渲染器窗口的窗口大小时,该值不会改变。让我很困惑。
我在 VTKCamera 类参考中看到 GetProjectionTransformMatrix() 返回从相机坐标映射到视口坐标的变换矩阵。 …
我可以通过调用来定义渲染器的背景颜色
renderer = vtk.vtkRenderer()
renderer.SetBackground(0,255,0)
Run Code Online (Sandbox Code Playgroud)
[![在此处输入图像描述][1]][1]
我的问题:
可以设置背景的不透明度吗?
您可以在我的示例图像中看到我的问题(具有多个视口)。我可以通过简单地使用透明背景来摆脱这种“切割”......
提前致谢!
我试图使用 VTK 找到 3D 模型渲染图像的 2D 绑定框。有什么可以自动为我找到的吗?最后我想要这样的东西(但使用飞机 3D 模型的渲染图像而不是真实的图像): http ://host.robots.ox.ac.uk/pascal/VOC/voc2007/examples/飞机_03.jpg
如果没有,我将不得不逐像素地选取点并自己找到极值点。只是想知道是否有什么东西可以自动为我做这件事。
我需要在 Windows 10 计算机上的 python 中使用VTK库(版本 5.10,因为我正在处理现有代码),但我无法成功导入它DLLImport:
Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:19:22) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import vtk
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\vtk\__init__.py", line 139, in <module>
__helper.refine_import_err('qvtk', 'vtkQtPython', exc)
File "C:\Python27\lib\site-packages\vtk\__helper.py", line 32, in refine_import_err
raise LinkError, str(exc)
vtk.__helper.LinkError: DLL load failed: The specified module could not be found.
Run Code Online (Sandbox Code Playgroud)
我已经安装了32位版本的PyQt4 4.11.4和 …
寻找参考代码,最好在 python 中从 CT 生成 XRAY。
这应该模拟尽可能多的以下因素:
衰减 (LUT)
焦点
X 射线束形状和角度
X 射线能量 (keV)
我已经熟悉以下选项并寻找更好的选择:
我在 OSX (Mojave) 下使用 Python 3.7.0。为了安装一个python包来可视化结果(Mayavi),我需要安装带有python 3绑定的vtk。我已经用 brew 安装了 python 3.7.0
我尝试了以下操作:
python3 -m pip install vtk. 我得到:
Collecting vtk
Could not find a version that satisfies the requirement vtk (from versions: )
No matching distribution found for vtk
Run Code Online (Sandbox Code Playgroud)brew install vtk --without-python@2不允许安装 python 3 包装器
brew install vtk --with-python --without-python@2 给出:
[10%] Built target vtkCommonMath
make: *** [all] Error 2
READ THIS: https://docs.brew.sh/Troubleshooting
Run Code Online (Sandbox Code Playgroud)我也尝试按照本教程进行操作,但 VTK_WRAP_TCL在 ccmake 的可用选项中找不到。我设置了以下选项:
PYTHON_EXECUTABLE :/usr/local/bin/python3
PYTHON_INCLUDE_DIR: /usr/local/Frameworks/Python.framework/Versions/3.7/include/python3.7m
编译 …
在 Windows 10 下,我正在尝试运行包含该行的 Python 脚本
from mayavi import mlab
Run Code Online (Sandbox Code Playgroud)
因此我试图通过运行来安装 Mayavi
pip install mayavi
Run Code Online (Sandbox Code Playgroud)
从 Windows PowerShell。然后我得到
Collecting mayavi
Using cached https://files.pythonhosted.org/packages/83/9e/293ba57353ed258c2f64d54bf00ca1447c1f38f4eb60d0e762ddec57bf51/mayavi-4.6.2.tar.bz2
Collecting apptools (from mayavi)
Using cached https://files.pythonhosted.org/packages/78/84/64764e2c87fcb7ad7521bdabc7c44c109b80691f94218cbddd5df2ee682c/apptools-4.4.0.tar.bz2
Collecting envisage (from mayavi)
Using cached https://files.pythonhosted.org/packages/ea/2a/7efcd2c44a638a5e3e65e39f7e5bd4cf952ef4ffc71768730cf19fef1e4e/envisage-4.7.0-py3-none-any.whl
Requirement already satisfied: numpy in c:\users\adria\appdata\local\programs\python\python37-32\lib\site-packages (from mayavi) (1.15.4)
Collecting pyface>=6.0.0 (from mayavi)
Using cached https://files.pythonhosted.org/packages/45/fe/7150742f7053cb5082f15704c064a5c683f42dfc00411ce173287651e33a/pyface-6.0.0.tar.gz
Collecting pygments (from mayavi)
Using cached https://files.pythonhosted.org/packages/13/e5/6d710c9cf96c31ac82657bcfb441df328b22df8564d58d0c4cd62612674c/Pygments-2.3.1-py2.py3-none-any.whl
Collecting traits>=4.6.0 (from mayavi)
Using cached https://files.pythonhosted.org/packages/56/47/03f50e82e1ff1e8a602c5f2cf12f08675f79a7169629fe4ce521e59d265f/traits-4.6.0.tar.bz2
Collecting traitsui>=6.0.0 (from mayavi)
Using cached https://files.pythonhosted.org/packages/f2/06/3ad35a78e1ca82d762e2d9ffe9ed6c9dd405caa340066052d7ec186b9b1b/traitsui-6.0.0.tar.gz
Collecting vtk (from mayavi)
Could not …Run Code Online (Sandbox Code Playgroud) 我是初学者,很抱歉,如果之前已经涵盖了这一点,但我似乎无法找到解决问题所需的确切内容。我正在尝试编写一个 AWK“脚本”,它可以将 MDF(网格定义文件)作为输入转换为(VALID)VTK 文件作为输出。
我有一个示例 MDF 文件,如下所示:
TITLE "1"
NMESHPOINTS 4
NNODES 4
NELEMENTS_TRIANG1 2
TIMESTEP 0.00001
NINTERNAL_TIMESTEPS 1000
NEXTERNAL_TIMESTEPS 100
DAMPING_FACTOR 0.01
MESHPOINT_COORDINATES
1 0.0 0.0 0.0
2 1.0 0.0 0.0
3 1.0 1.0 0.0
4 0.0 1.0 0.0
NODES_TRIANG1
1 1 2 3
2 1 3 4
Run Code Online (Sandbox Code Playgroud)
我想从这个输入制作一个有效的 VTK 文件。下面是输出的样子:
# vtk DataFile Version 1.0
2D Unstructured Grid
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 4 float
0.0 0.0 0.0
1.0 0.0 0.0
1.0 1.0 0.0
0.0 1.0 0.0
CELLS 2 …Run Code Online (Sandbox Code Playgroud)