【ITK 学习笔记】数据处理管道

ITK中的数据处理管道由数据对象和过程对象组成,支持自动更新和streaming。数据对象如Images和Meshes,过程对象包括Source、Filter和Mapper。Source生成数据,Filter处理数据,Mapper输出数据。管道通过SetInput()和GetOutput()建立连接,Region定义处理部分,Streaming提高处理大型数据效率。Update()触发数据处理,ImageFileReader、SmoothingFilter和ImageFileWriter在管道中扮演关键角色。
摘要由CSDN通过智能技术生成

数据处理通道

数据对象 data objects :(e.g. Images and Meshes) 是用来表示数据的,过程对象process objects 是用来操作 并产生新的数据对象的类,像 sourse,filter objectmappers 都是过程对象。Sourse (例如readers) 生成数据,filter object 载入数据并经过处理产生新的数据,而mapper接受数据并输出到一个文件或其他系统中。有时候 filter 可以广义上表示所有三种类型。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dIbe1KBc-1622465962778)(data/data-pipeline.png)]

数据处理管道连接了数据对象和过程对象。管道支持一个自动更新机制。该机制当且仅当它的输入或内在状态发生改变时才会唤起一个滤波器来进行执行,通常使用 SetInput()GetOutput() 方式连接数据对象和过程对象,比如:

process_object.SetInput(data_object.GetOutput())

在这里插入图片描述

ITK 关于图像的一个重要概念是区域 regions,它是一个矩形的,连续的图像块。区域用来指定图像中的处理的部分。在ITK中由三种常见的区域类型:

  • LargesPossibleRegion 全部图像
  • BufferedRegion 保存在内存中的图像部分
  • RequestedRegion 对图像操作时滤波器或其他类需要的部分

在这里插入图片描述
数据管道支持 streaming,可以将数据分成许多不重叠的小部分,对这些小部分进行逐一处理,并重新集合处理后的数据产生最终结果,这在处理多维图像这种很大的数据的时候特别有效,这里面的小部分就是RequestedRegion,具体方法是在管道末端的 filter_object.SetNumberOfStreamDivisions(5)

代码解释

import numpy as np
import itk
from itkwidgets import view,compare

图像处理管道开始与 source 比如 ImageFileReader

fileName = 'data/PacMan.png'
reader = itk.ImageFileReader.New(FileName=fileName) #单个文件读取 多个文件读取选 ImageSeriesReader

然后用一个 smoothing filter 来连接管道


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值