重写ITK滤波器的要点摘记

1. 写一个滤波器;须清楚 ITK中的流水线机制;知道怎样用迭代器遍历图像;通过数值空间或物理空间
   获取特殊像素点。可以通过继承: ImageToImageFilter类来重写自己的ITK滤波器,最简单的情况即是 重载

GenerateData(void);和 void PrintSelf(std::ostream& os, Indent indent) const(测试框架中需要用到);

2.

itkTypeMacro allows you to use run time type information
itkNewMacro sets up the object factory (for reference counted smart pointers)
itkGetMacro and itkSetMacro are used to access private member variables

3.还是没有搞懂 Typedefs, Self Superclass,Pointer ConstPointer这几个东西是做什么用的???
  一个特定对象的流水线最大修改时间(Pipeline modified time) 是指其所有上流的数据对象和处理对象中修改时间的最大值。
   常用的、可用于继承的ITK滤波器有:
   ImageToImageFilter. UnaryFunctorImageFiter, BinaryFunctorImageFilter. ImageFunction  MeshToMeshFilter. LightObject其中使用 ImageToImageFilter产生不同于输入图像的输出图像时,需要重GenerateOutputInformation.

4.UnaryFunctorImageFiter  用于 生成对图像进行函数处理的滤波器 BinaryFunctorImageFilter 用于 两幅图像的操作

   ImageFunction 用于对图像中的每个像素 施加 函数操作LightObject 用于解决ITk中已有类库无法解决的问题
    重载GenerateData()过程中,需要重新分配内存空间,但是 ThreadedGenerateData()则不需要。
5.Streaming Large Data
  流水线执行的细节: 通过 process object的Update()方法触发,然后委托到了 DataObject::Update()方法中。
  然后 DataObject::Update()方法触发了以下三种方法:
   DataObject::UpdateOutputInformation();
   DataObject::PropagateRequesetedRegion();
   DataObject::UpdateOutputData();  
  可以在  DataObject::UpdateOutputInformation()的执行过程中,重载 GenerateOutputInformation()方法来生成不同于输入图像的图像信息。
   DataObject::PropagateRequesetedRegion()有三种方法:
   EnlargeOutputRequestedRegion();
   GenerateOutputRequestedRegion();
   GenerateInputrRequestedRegion();
可以用来生成不同于输入图像大小的图像区域
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值