跳转到主要内容

一个由Kitware,Inc.领导的开源工具包,用于图像中管状结构(例如血管)的分割、配准和分析。

项目描述

ITKTubeTK:管状对象提取、配准和分析

License

Build, test, package

Documentation Status

支持在Linux、Windows和MacOS上使用C++和Python。

概述

TubeTK是由Kitware, Inc.开发的,用于图像中管道和表面的分割、配准和分析的开源工具包。

管道和表面作为N维图像中广义的1D和2D流形,是各种图像分析任务中的基本组成部分。图像中管状结构的实例包括磁共振血管造影和b模式超声图像中的血管、集成电路显微镜图像中的电线、航拍照片中的道路和共聚焦显微镜中的神经。

TubeTK的一个指导性前提是,通过关注1D和2D流形,我们可以设计出对分析图像的模态、噪声、对比度和尺度以及其中对象的排列和变形不敏感的方法。特别是,我们提出TubeTK的流形方法在许多应用中比涉及独立几何度量分析(例如边缘和角点)或需要完整形状模型的方法具有更好的性能。

TubeTK提供各种接口层

  • TubeTK/src:这是一个算法库。它是访问TubeTK方法的最低级别。它仅通过C++提供,并且需要相当的专业知识才能有效地组合和调用其方法以执行任何有用的操作。直接与这些算法接口不建议,并且支持不佳。这些方法正在进行单元级别的持续测试。

  • TubeTK/include:这是 TubeTK/src 中的 ITK 接口。此级别的接口旨在为 ITK 用户和 Python 脚本编写者提供。公开的方法代表了一种模块化程度,鼓励实验、与其他工具包(例如 Scikit-Learn)集成以及开发完成重要图像分析目标的处理流程。该接口作为 ITK 扩展提供,因此可以通过使用包装的 ITK 通过 Python 使用。

  • TubeTK/examples/Applications:这些是可选的命令行界面应用程序。这些应用程序也大多可通过 TubeTK/include 接口使用,因此可通过 python 使用。ITK 的扩展将重点关注 TubeTK/include 目录,并且很少添加新应用程序。这些应用程序在启用 cmake 选项 BUILD_EXAMPLES 时构建。这些应用程序还要求 SlicerExecutionModel,请参阅https://github.com/Slicer/SlicerExecutionModel

安装TubeTK

我们建议使用Python版本的TubeTK。为此,安装命令是

> pip install itk-tubetk

也可能有通过以下方式提供的较新、实验性的TubeTK版本

> pip install --pre itk-tubetk

有关现有和过去的版本以及预发布版本的信息,请参阅https://pypi.ac.cn/project/itk-tubetk/

编译TubeTK

我们强烈建议您使用上面描述的Python版本的TubeTK。然而,如果您希望从头开始编译TubeTK(例如,因为您想修改它或使用其C++接口),那么请使用与ITK捆绑在一起的TubeTK版本。ITKTubeTK从ITKv5.1.2开始作为官方ITK远程模块提供。

有关编译ITK(以及可选地编译其示例应用程序并将其包装为Python)的详细信息将在下面描述。

在ITK内部

如果您决定编译TubeTK而不是使用其方便的Python接口(见上文),那么当您使用CMake(https://cmake.com.cn/)配置ITK(https://github.com/InsightSoftwareConsortium/ITK)时,必须设置以下选项

  • CMAKE_BUILD_TYPE = Release
  • ITK_WRAP_PYTHON = On
  • Module_TubeTK = On

然后,当您构建ITK时,TubeTK也会自动构建。此外,如果您启用了ITK的Python包装,该包装将包括TubeTK。

示例应用

要构建TubeTK的示例应用,您必须执行以下操作

  1. 构建Slicer执行模型:https://github.com/Slicer/SlicerExecutionModel
  2. 在ITK的CMake中设置以下配置选项
    • BUILD_EXAMPLES = On
    • SlicerExecutionModel_DIR = <您的Slicer执行模型构建路径>

我们建议您将以下路径添加到您的用户环境

对于Python

我们的建议是使用 TubeTK 的免费且易于安装的 Python 包装,只需执行以下命令即可

pip install itk-tubetk

但是,如果您正在编译自己的 ITK/TubeTK 版本,并且已设置 ITK_WRAP_PYTHON = On,那么在编译 ITK 时,您将生成 ITK 和 TubeTK 的 Python 接口。

要从 Python 使用 TubeTK,您的构建机器上还需要以下软件包

  • numpy
  • scipy
  • jupyter
  • matplotlib

您还需要将 Python 包装的 ITK 的模块添加到您的 Python 环境。这可以通过将指定 Python 模块路径的文件复制到您的 Python site-packages 目录中完成。要找到系统上的 site-packages 目录,请遵循此链接上的说明:https://stackoverflow.com/questions/122327/how-do-i-find-the-location-of-my-python-site-packages-directory

如果显示您的 site-packages 目录是 /Python/Python36/site-packages,则将 ITK 的 Python 路径文件复制到该目录中,例如

$ cp ~/src/ITK-Release/Wrapping/Generators/Python/WrapITK.pth /Python/Python36/site-packages

然后您可以测试您的配置

$ python -c "import itk"

$ python -c "from itk import TubeTK"

上述两个命令都应该执行且无错误返回。否则,请在 TubeTK 问题跟踪器上发布详细的描述(您所执行的操作以及所收到的错误):https://github.com/InsightSoftwareConsortium/ITKTubeTK/issues

路线图

我们的路线图包括

  • 在 ITKTubeTK/examples 中添加更多 Jupyter Notebook 示例
    • 滑动器官配准
    • 基于血管的配准
    • 断层扫描模拟
    • 涉及肺部、肝脏和通过 MRA、CT 和超声成像的大脑的额外血管提取演示。

致谢

如果您发现 TubeTK 对您的工作很有用,请在发表您的工作时引用以下出版物

  • S. R. Aylward 和 E. Bullitt,"用于管状对象中心线提取的高度脊遍历的初始化、噪声、奇点和尺度",医学成像,IEEE 交易,第 21 卷,第 2 期,第 61-75 页,2002 年。

TubeTK 的发展得到了以下项目的支持

  • NCI,项目编号 R01CA138419、R01CA170665、R43CA165621 和 R44CA143234;
  • NIBIB(NBIB)的国家卫生研究院(NIH),项目编号 R01EB014955、R41EB015775、R43EB016621 和 U54EB005149;
  • NIBIBNIGMS R01EB021396;
  • NINDS R42NS086295 和 R41NS081792;
  • 国防部高级研究计划局(DARPA)TRUST 项目。

许可证

本软件根据 Apache 2.0 许可证分发。请参阅 LICENSE 文件以获取详细信息。

参考文献

(另见 Stephen R. Aylward @ Google Scholar

  • D.F. Pace, S.R. Aylward, M. Niethammer, "基于各向异性扩散的局部自适应正则化,用于滑动器官的可变形图像配准",医学成像,IEEE 交易,第 32 卷,第 11 期,第 2114-2126 页,2013 年 11 月 doi: 10.1109/TMI.2013.2274777
  • 布利特(E. Bullitt)、曾(D. Zeng)、莫塔梅特(B. Mortamet)、戈什(A. Ghosh)、Aylward(S. R.)、林(W. Lin)、马克斯(B. L.)、史密斯(K. Smith),"使用磁共振血管成像可视化健康老龄化对颅内血管的影响",《衰老神经生物学》,第31卷,第2期,第290-300页,2010年2月。
  • 布利特(E. Bullitt)、伊文德(M. Ewend)、弗雷登伯格(J. Vredenburgh)、弗里德曼(A. Friedman)、林(W. Lin)、威尔伯(K. Wilber)、曾(D. Zeng)、Aylward(S. R.)和雷尔顿(D. Reardon),"通过MRA对胶质母细胞瘤多形性进行计算机化血管形态学变化评估:四年间MRA连续成像的病例报告",《神经影像学》,第47卷,T143-T151页,2009年8月。
  • 布利特(E. Bullitt)、穆勒(K. Muller)、容(I. Jung)、林(W. Lin)和Aylward(S. Aylward),"分析血管群体属性",《医学图像分析》,第9卷,第1期,第39-49页,2005年2月。
  • Aylward(S. Aylward)、约米尔(J. Jomier)、韦克斯(S. Weeks)和布利特(E. Bullitt),"血管图像的配准与分析",《国际计算机视觉杂志》,第55卷,第2-3期,第123-138页,2003年12月。
  • 布利特(E. Bullitt)、吉里格(G. Gerig)、皮泽(S. Pizer)、林(W. Lin)和Aylward(S. Aylward),"从MRA图像中测量颅内血管的扭曲度",《IEEE医学成像交易》,第22卷,第9期,第1163-1171页,2003年9月。
  • S. R. Aylward 和 E. Bullitt,"用于管状对象中心线提取的高度脊遍历的初始化、噪声、奇点和尺度",医学成像,IEEE 交易,第 21 卷,第 2 期,第 61-75 页,2002 年。
  • Aylward(S. Aylward)、皮泽(S. Pizer)、伊伯利(D. Eberly)和布利特(E. Bullitt),"用于管状物体分割和描述的强度脊和宽度",在《1996年生物医学图像分析数学方法研讨会(MMBIA '96)》论文集中,华盛顿特区,美国,1996年,第131页。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

此版本没有可用的源代码分发文件。请参阅生成分发归档教程

构建分发

itk_tubetk-1.4.0-cp311-abi3-win_amd64.whl (9.5 MB 查看散列)

上传时间: CPython 3.11+ Windows x86-64

itk_tubetk-1.4.0-cp311-abi3-manylinux_2_28_x86_64.whl (20.1 MB 查看散列)

上传时间: CPython 3.11+ manylinux: glibc 2.28+ x86-64

itk_tubetk-1.4.0-cp311-abi3-manylinux_2_28_aarch64.whl (18.2 MB 查看散列)

上传时间: CPython 3.11+ manylinux: glibc 2.28+ ARM64

itk_tubetk-1.4.0-cp311-abi3-manylinux_2_17_x86_64.whl (18.9 MB 查看散列)

上传时间: CPython 3.11+ manylinux: glibc 2.17+ x86-64

itk_tubetk-1.4.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.5 MB 查看哈希值)

上传于 CPython 3.11+ manylinux: glibc 2.17+ x86-64

itk_tubetk-1.4.0-cp311-abi3-macosx_11_0_arm64.whl (20.4 MB 查看哈希值)

上传于 CPython 3.11+ macOS 11.0+ ARM64

itk_tubetk-1.4.0-cp311-abi3-macosx_10_9_x86_64.whl (18.7 MB 查看哈希值)

上传于 CPython 3.11+ macOS 10.9+ x86-64

itk_tubetk-1.4.0-cp310-cp310-win_amd64.whl (9.4 MB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

itk_tubetk-1.4.0-cp310-cp310-manylinux_2_28_x86_64.whl (20.1 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.28+ x86-64

itk_tubetk-1.4.0-cp310-cp310-manylinux_2_28_aarch64.whl (18.1 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.28+ ARM64

itk_tubetk-1.4.0-cp310-cp310-manylinux_2_17_x86_64.whl (18.8 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

itk_tubetk-1.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.4 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

itk_tubetk-1.4.0-cp310-cp310-macosx_11_0_arm64.whl (18.5 MB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

itk_tubetk-1.4.0-cp310-cp310-macosx_10_9_x86_64.whl (18.7 MB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ x86-64

itk_tubetk-1.4.0-cp39-cp39-win_amd64.whl (9.4 MB 查看哈希值)

上传时间 CPython 3.9 Windows x86-64

itk_tubetk-1.4.0-cp39-cp39-manylinux_2_28_x86_64.whl (20.1 MB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.28+ x86-64

itk_tubetk-1.4.0-cp39-cp39-manylinux_2_28_aarch64.whl (18.1 MB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.28+ ARM64

itk_tubetk-1.4.0-cp39-cp39-manylinux_2_17_x86_64.whl (18.8 MB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.17+ x86-64

itk_tubetk-1.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.4 MB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.17+ x86-64

itk_tubetk-1.4.0-cp39-cp39-macosx_11_0_arm64.whl (18.5 MB 查看哈希值)

上传时间 CPython 3.9 macOS 11.0+ ARM64

itk_tubetk-1.4.0-cp39-cp39-macosx_10_9_x86_64.whl (18.7 MB 查看哈希值)

上传时间 CPython 3.9 macOS 10.9+ x86-64

itk_tubetk-1.4.0-cp38-cp38-win_amd64.whl (9.4 MB 查看哈希值)

上传时间 CPython 3.8 Windows x86-64

itk_tubetk-1.4.0-cp38-cp38-manylinux_2_28_x86_64.whl (20.1 MB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.28+ x86-64

itk_tubetk-1.4.0-cp38-cp38-manylinux_2_28_aarch64.whl (18.1 MB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.28+ ARM64

itk_tubetk-1.4.0-cp38-cp38-manylinux_2_17_x86_64.whl (18.8 MB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ x86-64

itk_tubetk-1.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.4 MB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ x86-64

itk_tubetk-1.4.0-cp38-cp38-macosx_10_9_x86_64.whl (18.7 MB 查看哈希值)

上传时间 CPython 3.8 macOS 10.9+ x86-64

由支持