使用 VMTK 将 VTK 转换为 STL,反之亦然
Using VMTK to convert VTK into STL and vice versa
我正在尝试使用 VMTK(血管建模工具包 http://www.vmtk.org/index.html)将大量 VTK 文件转换为 STL,反之亦然。我通常使用 ParaView,但我希望通过自动转换来减少人为错误的可能性。我对 Python 没有经验,但对 Matlab 有经验。
目前,我什至无法在没有错误输出的情况下使用 VMTK 读取文件,所以我认为我使用了错误的 VMTK 脚本。
有人在这方面有专业知识吗?
非常感谢。
您可以创建一个 ParaView python 脚本来执行与在 GUI 中执行的操作相同的操作。
创建这样的脚本无需知道如何编写 python 代码,您可以使用 Python Trace:
Tools / Start Trace
- 默认选项应该没问题
- 执行您通常的操作(加载文件等)
Tools / Stop Trace
.
- 将其保存到磁盘
- 修改它以使用参数而不是硬编码路径
例如,它可能看起来像:
# trace generated using paraview version 5.8.1-1632-g0a4d2813b0
#### import the simple module from the paraview
from paraview.simple import *
#### disable automatic camera reset on 'Show'
paraview.simple._DisableFirstRenderCameraReset()
import sys
if len(sys.argv) != 2:
raise ValueError('Please provide a filename.')
filename = sys.argv[1]
print(f'Processing {filename} ...')
# create a new 'Legacy VTK Reader'
blowvtk = LegacyVTKReader(FileNames=[filename])
...
- 运行 `./pvpython myscript.py 文件到process.vtk
当然,有了更多 python(或其他脚本工具),您可以改进它以遍历文件列表而不是只处理一个,等等...
我正在尝试使用 VMTK(血管建模工具包 http://www.vmtk.org/index.html)将大量 VTK 文件转换为 STL,反之亦然。我通常使用 ParaView,但我希望通过自动转换来减少人为错误的可能性。我对 Python 没有经验,但对 Matlab 有经验。
目前,我什至无法在没有错误输出的情况下使用 VMTK 读取文件,所以我认为我使用了错误的 VMTK 脚本。
有人在这方面有专业知识吗?
非常感谢。
您可以创建一个 ParaView python 脚本来执行与在 GUI 中执行的操作相同的操作。
创建这样的脚本无需知道如何编写 python 代码,您可以使用 Python Trace:
Tools / Start Trace
- 默认选项应该没问题
- 执行您通常的操作(加载文件等)
Tools / Stop Trace
.- 将其保存到磁盘
- 修改它以使用参数而不是硬编码路径
例如,它可能看起来像:
# trace generated using paraview version 5.8.1-1632-g0a4d2813b0
#### import the simple module from the paraview
from paraview.simple import *
#### disable automatic camera reset on 'Show'
paraview.simple._DisableFirstRenderCameraReset()
import sys
if len(sys.argv) != 2:
raise ValueError('Please provide a filename.')
filename = sys.argv[1]
print(f'Processing {filename} ...')
# create a new 'Legacy VTK Reader'
blowvtk = LegacyVTKReader(FileNames=[filename])
...
- 运行 `./pvpython myscript.py 文件到process.vtk
当然,有了更多 python(或其他脚本工具),您可以改进它以遍历文件列表而不是只处理一个,等等...