ITK简介与ITK Pipeline

ITK 概述

ITK(Insight Segmentation and Registration Toolkit) 是一个开源,跨平台的图像分析框架,里面有大量的前沿算法,广泛用于图像配准分割。ITK使用C++开发,可由CMake生成不同环境下的可编译工程,并且ITK有对Tcl, Python和Java的封装层,使得开发者可以使用不同的语言进行开发。

ITK的主要特征有:

  1,ITK提供了通用的方式表示图像(任意维度)和面片(非结构化的meshes),提供用于进行分割和配准的算法,主要面向医学应用,尽管也可以处理其他应用;

  2,ITK不提供可视化的用户接口,仅提供最小化的文件接口,留由其他库提供;

  3,ITK大量使用泛型编程技术;

  4,ITK内存模型使用智能指针维护对象的引用计数,使用对象工厂实例化对象;

  5,ITK支持多线程并行处理;

  6,ITK使用命令/观察者模式进行事件处理;

  7,ITK基于数据流的架构进行组织,数据被表示成数据对象(data object),数据对象由处理对象(process object)处理,数据对象和处理对象连在一起形成Pipeline。

  8,ITK的开发基于极限编程(extreme programming)原则,设计、实现和维护是快速迭代的过程,而测试是这个过程的核心,每当有文件check in、每晚都会进行不同平台和编译器的测试。

 

ITK 系统组织

ITK包含几个子系统

Essential System Concepts: ITK中重要的概念包括泛型编程,用于内存管理的智能指针,用于对象实例化的对象工厂,基于command/observer设计模式的事件管理,多线程支持等

Numerics:ITK使用VXL的VNL数值库,这个数值计算库是对用Fortran实现的Netlib数值库的C++封装。

Data Representation and Access:itk::Image 和itk::Mesh是两个用于表示数据的基本类,此外有不同类型的用于存储和遍历数据的迭代器和容器。

Data Processing Pipeline:数据表示类(数据对象,Data Object)被filters(处理对象,Process Object)处理,几个filter可以组织成一条pipeline。Pipeline可以记录并维护数据对象和filter的状态,只有需要的时候才执行响应的filters。ITK的pipeline支持多线程和流式处理。

IO Framework:与pipeline相关的是sources(初始化pipeline的filter),mappers(终止pipeline的filters)。sources

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值