VTK 9.2.6源码编译Remote功能 SplineDrivenImageSlicer

1 篇文章 0 订阅

一、编译准备

        1、CMAKE 3.1.8

        2、VTK 9.2.6 release版源码

        3、Microsoft Visual Studio 2017 或 2019

二、问题

        因为我的PYTHON项目中要使用VTK的CPR曲面重建模块vtkSplineDrivenImageSlicer,但是PIP安装的VTK没有这个模块,只好通过VTK源码编译。

三、解决办法

        在使用CMake编译VTK 9.2.6时,可以勾选VTK_ENABLE_REMOTE_MODULES,但没有VTK_MODULE_ENABLE_VTK_vtkSplineDrivenImageSlicer,需要在VTK源码REMOTE目录增加SplineDrivenImageSlicer.remote.cmake文件,内容如下:

#
# vtkSplineDrivenImageSlicer
#

vtk_fetch_module( SplineDrivenImageSlicer
  "Spline Driven Image Slicer - http://www.vtkjournal.org/browse/publication/838"
  GIT_REPOSITORY https://github.com/lorensen/midas-journal-838.git
# First working as a remote module
  GIT_TAG 7994999c1e4b56ab546527788b7c894a138e97a1
  )

在CMAKE中点击Configure,CMake会下载 SplineDrivenImageSlicer 代码,编译完成后,发现没有SplineDrivenImageSlicer的DLL文件。

在CMAKE找到VTK_MODULE_ENABLE_VTK_vtkSplineDrivenImageSlicer,Value选择YES。同时在VTK源码REMOTE/SplineDrivenImageSlicer目录下,确认存在以下三个文件(如果没有,可以复制以下内容创建文件):

1、CMakeList.txt文件:

message(STATUS "SplineDrivenImageSlicer: Building as a Remote VTK module")

set(Module_SRCS
  vtkFrenetSerretFrame.cxx
  vtkSplineDrivenImageSlicer.cxx  
)
set(Module_CLASS
  vtkFrenetSerretFrame
  vtkSplineDrivenImageSlicer
)
set(Module_HEADER
  vtkFrenetSerretFrame.h
  vtkSplineDrivenImageSlicer.h
)

if (VTK_VERSION VERSION_LESS "8.90.0")
  vtk_module_library(SplineDrivenImageSlicer ${Module_SRCS})
else()
  vtk_module_add_module(VTK::SplineDrivenImageSlicer
    SOURCES ${Module_SRCS}
    CLASSES ${Module_CLASS}
    HEADERS ${Module_HEADER}
    )
endif()

2、module.cmake文件

set(DOCUMENTATION "A Spline Driven Reslice Algorithm as described in the VTK Journal Article at http://www.vtkjournal.org/browse/publication/838 .")

vtk_module(SplineDrivenImageSlicer
  DESCRIPTION
    "${DOCUMENTATION}"
  DEPENDS
    vtkCommonCore
    vtkFiltersCore
    vtkFiltersSources
    vtkImagingCore
  TEST_DEPENDS
    vtkTestingCore
    vtkImagingSources
  KIT
    vtkRemote
)

3、vtk.module文件

NAME
  VTK::SplineDrivenImageSlicer
LIBRARY_NAME
  SplineDrivenImageSlicer
DEPENDS
  VTK::CommonCore
  VTK::FiltersCore
  VTK::FiltersSources
  VTK::ImagingCore
TEST_DEPENDS
  VTK::TestingCore
  VTK::ImagingSources
DESCRIPTION
  "A Spline Driven Reslice Algorithm as described in the VTK Journal Article at http://www.vtkjournal.org/browse/publication/838 ."

再次编译,就会生成SplineDrivenImageSlicer的DLL库文件,C++或PYTHON版本的REMOTE功能SplineDrivenImageSlicer 就可以愉快地使用了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要利用源码手动编译生成vtk.jar,你可以按照以下步骤进行操作: 1. 确保你已经正确地安装了VTK 9.2.6的源代码,并且已经设置了Java环境。 2. 打开命令提示符(CMD)并进入到VTK源代码目录。 3. 创建一个用于构建的目录,例如"build"。 4. 进入到构建目录中,并运行以下命令来配置构建过程: ``` cmake -DVTK_WRAP_JAVA=ON -DCMAKE_BUILD_TYPE=Release .. ``` 这将启用Java包的构建,并设置构建类型为Release。 5. 使用CMake生成Visual Studio项目文件。在构建目录中运行以下命令: ``` cmake --build . --config Release ``` 这将使用CMake生成Visual Studio项目文件,并开始编译VTK。 6. 打开生成的Visual Studio项目文件(位于构建目录中),在Visual Studio中进行构建。 7. 构建成功后,你将在构建目录下的bin\Release文件夹中找到生成的DLL文件。 8. 在VTK源代码目录中找到Wrapping\Java文件夹。如果该文件夹不存在,请手动创建它。 9. 将生成的DLL文件复制到Wrapping\Java文件夹中。 10. 在命令提示符中,进入到Wrapping\Java文件夹,并运行以下命令来生成vtk.jar: ``` javac -classpath vtk.jar src/vtk/*.java -d . jar cvf vtk.jar vtk/* ``` 这将使用javac命令编译Java源文件,并使用jar命令将编译后的.class文件打包为vtk.jar。 11. 完成后,你将在Wrapping\Java文件夹中找到生成的vtk.jar文件。 请注意,以上步骤仅供参考,具体的操作可能会因个人设置和环境而有所不同。如果遇到问题,请参考VTK的官方文档、社区论坛或向VTK开发者寻求帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值