1.ITK存储库包含以下子目录

•ITK/Modules-软件的核心;大多数源代码的位置。

•ITK/Documentation-迁移指南和Doxygen基础结构。

•ITK/Examples-本指南使用的一组简单,文档齐全的示例,说明了重要的ITK概念。

•ITK/Testing-MD5文件的集合,用于与ITK数据服务器链接以下载测试数据。ITK/模块中的测试使用此测试数据来使用CDash生成ITK质量仪表板。(请参阅第226页的10.2节。)

•Insight/Utilities-支持源代码开发的脚本。例如,CTest和Doxygen支持。

•Insight/Wrapping-包装代码,用于在C ++库和各种解释语言之间建立接口(当前支持Python)。

2.ITK/Modules中的源代码目录结构是最重要的。

•ITK/Modules/Core-核心类,宏定义,类型别名和其他对ITK至关重要的软件构造。Core中的类是始终作为ITK的一部分进行编译的唯一类。

•ITK/Modules/ThirdParty—用于实现图像文件I/O和数学算法的各种第三方库。(注意:ITK的数学库基于VXL/VNL软件包9。)

•ITK/Modules/Filtering-图像处理过滤器。

•ITK/Modules/IO—支持读取和写入图像,变换和几何的类。

•ITK/Modules/Bridge-用于与其他分析库或可视化库(例如OpenCV10和VTK11)连接的类。

•ITK/Modules/Registration-用于图像或其他数据结构相互注册的类。

•ITK/Modules/Segmentation-用于图像或其他数据结构分段的类。

•ITK/Modules/Video-用于输入,输出和处理具有时间分量的静态和实时数据的类。

•ITK/Modules/Compatibility—收集与ITK第3版向后兼容的类以及不推荐使用的类-即计划从ITK的未来版本中删除。

•ITK/Modules/Remote-一组分布在主要ITK源存储库之外的模块(大多数模块托管在github.com上),在配置ITK时可以通过CMake下载其源代码。

•ITK/Modules/External-用于放置在开发或未公开模块中的目录。

•ITK/Modules/Numerics-数值模块的集合,包括FEM,优化,统计,神经网络等。

3.系统概述

1)数据表示(Data Representation):itk::Image、itk::Mesh、itk::Histogram、itk::SpatialObject

2)数据处理(Data Processing Pipeline):通过滤波(filters),这可以是多线程和streaming capable来节约内存。

3)IO:read(输入数据),writer输出数据

4)空间对象(Spatial Objects):几何形状使用空间对象层次结构表示(the spatial object hierarchy)

5)配准框架(Registration Framework):灵活的配准框架:图像配准(image registration),多分辨率配准(multiresolution registration),基于PDE的配准(PDE-based registration)和基于有限元方法的配准(finite element method,FEM)。

6)FEM框架:ITK包含一个子系统解决FEM问题,尤其是非刚性配准。FEM工具包包括mesh definition(nodes and elements)(网格模式定义(节点或者元素)),加载,boundary conditions(边界条件)

7)层设置框架(Level Set Framework):创建滤波器的种类集合,通过迭代,有限差分更新求解偏微分方程(partial differential equations),包括:稀疏的水平集求解器,通用的水平集分割过滤器,以及几个特定的子类(基于阈值,Canny和Laplacian的方法)。

8)封装(Wrapping):ITK核心是用C++实现,可以自动生成Python binding 并且可以使用Python创建ITK程序。ITK的封装过程可以处理泛型编程。

4.创建滤波器

3.ITK-系统简述

• ImageToImageFilter;• UnaryFunctorImageFilter;• BinaryFunctorImageFilter;

• ImageFunction;• MeshToMeshFilter;• LightObject

1Streaming Large Data

3.ITK-系统简述

2Overview of Pipeline Execution

1.确定滤波器管道中需要执行的滤波器;

2.初始化滤波器输出数据对象;

3.确定一个过滤器必须处理的数据量;

4.多线程数据细分;

5.若滤波器无需计算,且用户请求释放数据,即可释放输出数据。

3.ITK-系统简述

5.创建一个模型

Top level目录:CMakeLists.txt;itk-module.cmake

• Include目录:头文件(Headers)

Src目录:模块src目录中带有.cxx扩展名的源文件创建了模块生成的库。

Test 目录:测试目录中为模块的回归测试

• Wrapping封装目录:实例化模板类的类型;类相关性,必须在给定类之前进行包装。

ITK文档链接:

https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.0.0/InsightSoftwareGuide-Book1-5.0.0.pdf

相关文章:

  • 2022-01-18
  • 2021-07-09
  • 2021-06-26
  • 2021-05-25
  • 2021-09-25
  • 2022-12-23
  • 2021-11-07
猜你喜欢
  • 2021-08-21
  • 2021-12-09
  • 2021-11-28
  • 2021-04-24
  • 2022-01-16
  • 2021-05-05
  • 2021-11-11
相关资源
相似解决方案