前言
3D Slicer是一个免费的开源软件(基于BSD授权条款),用于影像分析、影像视觉化以及影像导引放射治疗(Image Guided Radiotherapy,IGRT),可被用于Linux、MacOSX和windows等操作系统,它具有相当良好的可扩充性,可以透过嵌入模组的方式添加新的功能。
3D Slicer适用于查看全身各个组织的器官,相容于核磁共振造影(MRI)、电脑断层扫描(CT)、超音波(US)以及显微镜下的影像。 [3]
3D Slicer支援二维多平面重建,可以用 3D 的形式将器官以不同的角度进行切割来查看不同的切面,并可结合核磁共振造影(MRI)的数据,让医师可以对危险程度较高的手术进行更多的事前模拟。[4]
3D Slicer的功能包括:[5]
- 处理DICOM格式的影像,并支援读取/写入其他种类的格式
- 支援多边形网格、二维多平面重建以及立体渲染的视觉化
- 手动编辑影像
- 自动进行影像分割
- 扩散张量磁振造影(Diffusion Tensor Imaging,DTI)的数据分析和视觉化。
3D Slicer以BSD授权条款发布。虽然该许可证在学术及商业用途上没有任何限制,但是使用者有责任在遵守当地法规的情况下使用,而3D Slicer目前尚未获得美国FDA正式批准于临床上使用。
( 以上简介来源维基百科)
编译准备
本文所用编译工具及编译环境如下:
- Windows 10 21H2 x64,Windows SDK 19041
- Git 2.39.1
- CMake 3.25.2
- Qt 5.15.2(3D Slicer 5.2 版本所需 Qt 版本为 5.15)
- Visual Studio 2019
编译配置
1. 源码下载
Github 克隆 3D Slicer 源码,切换分支至 5.2,本文源码路径为 ”D:\Build\Slicer“,后文路径会以此为准。
(直接下载源码编译会在最后编译的时候报错,所以建议 Github 拉取源代码编译)
2. 源码 cmake 文件修改
记事本打开文件 “D:\Build\Slicer\CMake\SlicerCheckCMakeHTTPS.cmake",修改第14 行中的路径。
// 将路径 "https://raw.githubusercontent.com/Slicer/Slicer/main/CMakeLists.txt" 修改为可国内访问的我网站,本文以百度官网为例
function(slicer_check_cmake_https)
set(url "https://www.baidu.com")
set(dest "${CMAKE_CURRENT_BINARY_DIR}/slicer_check_cmake_https_output")
这是一个 check 网络的 cmale 文件,不修改会报错,在编译过程中会下载多个三方库。
3. 路径配置
新建编译文件夹,CMake-gui 中配置源码路径和编译路径
源码路径:D:/Build/Slicer
编译路径:D:/Build/Slicer/build_5.2
路径配置完成后,点击【Configure】,配置选项选择 VS2019 和 x64 平台
4. CMale 配置选项修改
其实这一步没什么好修改的,使用默认的基本上就可以了。本文根据个人喜好还是修改了一部分选项
-
Qt5_DIR:E:/Dev/Qt/Qt5.15.2/5.15.2/msvc2019_64/lib/cmake/Qt5
-
BUILD_TESTING,Slicer_USE_QtTesting,是否编译测试示例,本文取消选则,取消选择会加快编译速度
-
Slicer_VTK_SMP_IMPLEMENTATION_TYPE:VTK 中 SMP 的实现方式,本文选择 TBB,使用 TBB 会加快 VTK 中的一些计算,使用默认即可。
有兴趣者可下载 oneapi-tbb 进行配置,
点击【Configure】继续配置,点击【Generate】生成 VS 解决方案。
VS 报错解决
使用 VS 2019 打开解决方案,解决方案配置 改为 ”Release x64“,生成【ALL_BUILD】,等待一段时间即可。
期间在下载多个库,下载失败会不停报错,甚至可能需要科学上网。
1. CTK 报错
每次【ALL_BUILD】生成完成后,继续生成【ALL_BUILD】,直至大约报错只有 2~3 个为止,报错信息如下:
CMake Error at CMakeLists.txt:861 (find_package):
By not providing "FindCTK.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "CTK", but
CMake did not find one.
Could not find a package configuration file provided by "CTK" with any of
the following names:
CTKConfig.cmake
ctk-config.cmake
CMake-gui 打开编译目录 ”D:/Build/Slicer/build_5.2/CTK-build“,新建 ”CTK_install“ 文件夹,【CMAKE_INSTALL_PREFIX】修改为 ”D:/Build/Slicer/build_5.2/CTK-install“,重新配置和生成解决方案,VS 打开解决方案,生成【ALL_BUILD】。
2. PythonQt 报错
在编译 CTK 时,PythonQt 报错,报错信息如下:
CMake Error at CMake/ctkMacroWrapPythonQt.cmake:194 (message):
CUSTOMBUILD : error : PythonQt package is required to build CTKCorePythonQt
CMake-gui 打开编译目录 ”D:/Build/Slicer/build_5.2/CTK-build/PythonQt-build“,无需修改,重新配置和生成解决方案,VS 打开解决方案,生成【ALL_BUILD】。编译完成后生成【INSTALL】安装 PythonQt。
3. 编译 CTK
再回到 CTK 解决方案中,生成【ALL_BUILD】,这时候应该就可以全部编译成功了,编译完成后生成【INSTALL】安装 CTK。
4. 编译 Slicer
再回到 Slicer 解决方案中,生成【ALL_BUILD】,等待编译完成即可,这时候应该就可以全部编译成功了。
Ps:
Slicer 解决方案中看不到源代码,Slicer 解决方案中的一个个项目是一个子解决方案,编译的时候下载多个第三方库,然后分别编译所需第三方库,生成多个子解决方案,多个子解决方案再最后组合成一个 Slicer 解决方案。
整体的 Slicer 解决方案中有一个子 Slicer 解决方案,路径为 “D:\Build\Slicer\build_5.2\Slicer-build\Slicer.sln”,打开这个子 Slicer 解决方案即可看到软件源代码,main 函数在项目【SlicerApp】中。文章来源:https://www.toymoban.com/news/detail-561248.html
结语
以上就是所有的编译教程,整体编译不难,就是其中觉得其中有的地方有点坑人,就想着记录一下。文章来源地址https://www.toymoban.com/news/detail-561248.html
到了这里,关于3D Slicer源码编译教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!