Skip to content

编译/安装VTK

1 Win c++

1.1 VS直接打开VTK项目编译速度会更快

VS2022 直接打开 CMake 项目会更快的原因,主要是由于 Visual Studio 对 CMake 的深度集成和优化。它通过增量编译、多核编译优化、动态选择构建工具(如 Ninja),以及更高效的文件监控和热重载机制,实现了更高的编译效率。而通过 CMake-GUI 生成的传统 VS 工程,虽然可以手动优化,但默认配置可能较为保守,尤其在未充分配置并行编译和工具链的情况下,编译速度可能明显落后于直接打开 CMake 项目的方式。

1.2 交叉编译ITK

ITKVTKGlue:
* ITK5 全部支持 VTK9
* ITK4 只有 4.13.3 这一个版本默认支持VTK9
1. itk::GDCMSeriesFileNames 返回文件路径 std::string 编码是UTF8的,itk::ImageSeriesReader 读取的路径 std::string 是本机编码页。也不知道是不是我没有仔细看说明,反正默认编译直接导致中文无法使用。
2. ITK5 自带的GDCM是3.0+,ITK4 自带的GDCM全是2.8+。ITK5的 SYSTEM GDCM如果选旧版本也是一堆问题,之前写的部分代码直接不能用了。

1.3 windos 下 vtk 弹窗全黑

如果遇到 win 下 vtk 窗口全黑,可以尝试在 vtkRenderWindowInteractor::star() 前主动调用 vtkRenderWindow Render()。

  • 原来代码
// old
    vtkNew<vtkRenderWindow> renwin ;
    renwin->AddRenderer(renderer);
    renwin->SetSize(800, 800);
    vtkNew<vtkInteractorStyleTrackballCamera>style ;
    vtkNew<vtkRenderWindowInteractor> rendererwindowinteracrot ;
    rendererwindowinteracrot->SetInteractorStyle(style);
    rendererwindowinteracrot->SetRenderWindow(renwin);
    rendererwindowinteracrot->Start();
// new
    vtkNew<vtkRenderWindow> renwin ;
    renwin->AddRenderer(renderer);
    renwin->SetSize(800, 800);
    renwin->Render();
    vtkNew<vtkRenderWindowInteractor> rendererwindowinteracrot ;
    rendererwindowinteracrot->SetRenderWindow(renwin);
    rendererwindowinteracrot->Start();

2 Win python