3D Slicer源码编译教程

这篇具有很好参考价值的文章主要介绍了3D Slicer源码编译教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

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正式批准于临床上使用。

( 以上简介来源维基百科)

编译准备

本文所用编译工具及编译环境如下:

  1. Windows 10 21H2 x64,Windows SDK 19041
  2. Git 2.39.1
  3. CMake 3.25.2
  4. Qt 5.15.2(3D Slicer 5.2 版本所需 Qt 版本为 5.15)
  5. 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

3D Slicer源码编译教程,源码编译,源码软件,图像处理,c++
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

3D Slicer源码编译教程,源码编译,源码软件,图像处理,c++

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

到了这里,关于3D Slicer源码编译教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【3D 图像分割】基于 Pytorch 的 3D 图像分割6(数据预处理之LIDC-IDRI 标签 xml 标签转储及标记次数统计 )

    由于之前哔站作者整理的 LUNA16 数据处理方式过于的繁琐,于是,本文就对 LUNA16 数据做一个新的整理,最终得到的数据和形式是差不多的。但是,主要不同的是代码逻辑比较的简单,便于理解。 对于 LUNA16 数据集的学习,可以去参考这里:【3D 图像分类】基于 Pytorch 的 3D 立

    2024年02月04日
    浏览(37)
  • FPGA图像处理_中值滤波实现(含源码)

    非线性滤波器在通常情况下没有特定的转移函数。一类比较重要的非线性滤波就是统计排序滤波器,统计排序滤波器即对窗口内的像素值进行排序并通过多路选择器选择使用排序后的值,例如中值滤波、最大/最小值滤波等。排序滤波器或者其组合,可以在很多图像处理的场合

    2023年04月15日
    浏览(30)
  • Python实现数字图像处理算法及源码解析

    Python实现数字图像处理算法及源码解析 数字图像处理在计算机视觉、图像识别等领域中有着广泛的应用,Python作为一门易于上手且功能强大的编程语言,也成为了数字图像处理的首选语言之一。本篇文章将介绍数字图像处理中的常见算法,并提供相应的Python代码实现。 一、

    2024年02月08日
    浏览(30)
  • 苹果电脑RAW图像处理软件Capture One Pro 22 mac软件介绍

    Capture One Pro 22 for mac是一款专业的RAW文件转换器和图像编辑软件,拥有更新的处理引擎、市场领先的性能和强大的新功能,可为 500 多台高端相机提供具有美丽色彩和令人难以置信的细节的终极图像质量。 Capture One Pro 22 for Mac版软件介绍 Capture One是专业的RAW转换器,可为500多个

    2024年01月16日
    浏览(37)
  • Scipy 中级教程——图像处理

    Scipy 的图像处理模块提供了许多功能,用于读取、处理和分析图像。在本篇博客中,我们将深入介绍 Scipy 中的图像处理功能,并通过实例演示如何应用这些工具。 1. 读取和显示图像 首先,让我们学习如何使用 Scipy 读取和显示图像。我们将使用 scipy.ndimage 模块中的 imread 函数

    2024年01月16日
    浏览(38)
  • 基于VC环境下调用MATLAB实现数字图像处理(附上完整源码+图像+说明)

    在VC环境下调用MATLAB实现数字图像处理是一种常见且有效的方法。下面将介绍如何在VC环境下调用MATLAB实现数字图像处理的步骤。 首先,确保你已经安装了MATLAB和Visual Studio,并且已经将它们正确配置。确保你已经安装了MATLAB的编译器支持包(MATLAB Compiler Runtime或MCR)。 在Vis

    2024年02月15日
    浏览(25)
  • Python 图像处理教程:如何提高图像细节清晰度

    Python 是一种广泛应用于图像处理的编程语言,它提供了丰富的图像处理库,例如 Pillow 和 OpenCV 等。在进行图像处理时,有时候我们需要提高图像的细节清晰度,以便更好地观察和分析图像。本教程将介绍一些 Python 图像处理技巧,帮助您提高图像细节的清晰度。 增强图像对

    2024年02月11日
    浏览(30)
  • OpenCV数字图像处理详细教程

    1.编写程序,将自选图像(如图 1)和 OpenCV 的 Logo 图像叠加现实,其中 Logo 图像做背景透明处理。(提示:OpenCV 的 Logo 图像背景是白色的)   实现代码及注释讲解 结果展示   编写程序,使用 cv2.warpAffine()函数使一幅图像放大为原来的二倍后,以图像中 心为原点,顺时针旋

    2024年04月17日
    浏览(30)
  • 智能车图像处理逆透视教程

    去畸变请参考: 图像处理去畸变教程_LoseHu的博客-CSDN博客 去畸变+逆透视请参考: ​​​​​​​​​​​​​​​​​​​​​智能车去畸变+逆透视教程_LoseHu的博客-CSDN博客 逆透视: 如下 对于初做车的同学,看见摄像头图像神奇的侧视角难免会有些烦躁,我刚开始也是

    2024年02月06日
    浏览(22)
  • MATLAB实现图像处理:图像识别、去雨、去雾、去噪、去模糊等等(附上20个完整仿真源码)

    图像处理是计算机视觉领域的重要研究方向,MATLAB是一种功能强大的数学计算软件,可以用于图像处理和分析。下面是一些简单的MATLAB图像处理代码示例,包括图像增强、边缘检测、形态学处理、特征提取等。 图像增强是指通过一些技术手段,使图像的某些特征更加突出,从

    2023年04月17日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包