ITK图像配准01-学习
来源:互联网 发布:软件编程软件 编辑:程序博客网 时间:2024/05/21 18:40
图像配准的定义:
图像配准是将一幅图像上的点映射到另一幅图像上同源点的空间转换过程。eg:平移、旋转、缩放等变换。下图为镜像变换。
配准框架:
配准框架的基本成员:两个输入图像、一个变换、一个路径选择、一个校对机和一个优化器。
过程:待配准图像通过 变换函数(T(x)) 到参考图像的映射过程。
传递函数T(X)表示从参考图像上的点到待配准图像上的点的空间映射关系。校对机被用来评估待配准图像在非网格位置的程度。成员路径选择S(f, m×T)提供了一种参考图像被待配准图像配准的程度。这种尺度形成了数量上的标准,这种标准可以被优化器通过寻找被传递的参数定义的空间去达到最优化。
一个配准方法要求下面几条:两个输入的图像、转换函数、度量、校对机和优化器。
在配准方法中的成分的每种类型都应该首先被实例化。
1.两个输入的图像
const unsigned int Dimension = 2;//图像数据类型参数,维度
typedef float PixelType;//图像数据类型参数,像素类型
输入数据的类型通过下面几行表达:
typedef itk::Image< PixelType, Dimension > FixedImageType;
typedef itk::Image< PixelType, Dimension > MovingImageType;
2.图像转换
把参考图像空间映射到待配准图像空间的转换如下:
typedef itk::TranslationTransform< double, Dimension > TransformType;//转换类型
3.度量
衡量标准为比较两幅图像的搭配质量。衡量标准通常已经参数化,例如说下面对图像类型的声明:
typedef itk::MeanSquaresImageToImageMetric<FixedImageType,MovingImageType > MetricType;
4.选择校对机的类型
typedef itk:: LinearInterpolateImageFunction<MovingImageType,double > InterpolatorType;//选择插值类型
5.配准方法
配准方法的类型是通过参考和待配准图像的类型来表示的。
typedef itk::ImageRegistrationMethod<FixedImageType,MovingImageType > RegistrationType;
配准的要素以上所有要素:转换,度量,校对机,优化方法。
以下为要素:
每一个配准要素都是通过它的New( )创建的,并且通过各自的itk::SmartPointer赋值。
MetricType::Pointer metric = MetricType::New( );
TransformType::Pointer transform = TransformType::New( );
优化器Type::Pointer 优化器 = 优化器Type::New( );
InterpolatorType::Pointer interpolator = InterpolatorType::New( );
RegistrationType::Pointer registration = RegistrationType::New( );
每一个要素被连接到配准方法的程序中:
registration->SetMetric( metric );
registration->SetOptimitor( optimitor);
registration->SetTransform( transform );
registration->SetInterpolator( interpolator );
配准需要的输入图像读取示例:
参考和待配准图像从文件里读取。 这就需要itk::ImageRegistrationMethod从readers的输出中获得它的输入数据。
registration->SetFixedImage( fixedImageReader->GetOutput( ) );
registration->SetMovingImage( movingImageReader->GetOutput( ) );
需要配准的图像可能只是图像中的部分区域,以下为设置指定区域操作:
这样的区域通过参考图像的BufferedRegion定义。注意,在这个区域首先要调用它的Update( )方法:
fixedImageReader->Update( );
registration->SetFixedImageRegion(fixedImageReader->GetOutput( )->GetBufferedRegion( ) );
变换参数设置示例(平移):用于变换的参数队列由沿着每一维的方向的平移值构成。设置参数值到零以便将变换初始成恒等变换。
typedef RegistrationType::ParametersType//变换类型
ParametersType;ParametersTypeinitialParameters(transform->GetNumberOfParameters( ) );
initialParameters[0] = 0.0; // Initial offset in mm along X
initialParameters[1] = 0.0; // Initial offset in mm along Y
registration->SetInitialTransformParameters( initialParameters );//变换参数设置
准备执行配准方法。优化器用来驱动配准的执行。然而, ImageRegistrationMethod类协调整体以确保在传递给优化器之前一切都到位了。优化器用于收敛得到配准的参数,需要设置。
以下是配准样例的框架结构:
以下是转自http://blog.sina.com.cn/zijuname的配准总结:
配准就是在基于上述四个部分,针对不同的图形情况,如单模,多模,去用不同的准则,变换,优化器和插值方法。在这个配准框架下,不同的部分在设置参数时有变换,这个也是难点。不同的优化器,往往参数设置不同,这个就需要了解优化器和配准方法的算法。如放射变换有旋转变换的矩阵,平移量。muti-solutionregistration(多分辨率配准)要改变步长等等。
- ITK图像配准01-学习
- ITK图像配准介绍
- ITK的图像配准
- ITK图像配准介绍
- ITK学习笔记:图像FFT
- ITK学习笔记-1:图像的读写
- ITK学习笔记-2:图像采样
- ITK 配准框架
- ITK配准实例
- ITK配准:基于手动设置配准点的图像配准
- ITK IOBase 图像属性
- 利用ITK旋转图像
- itk中的图像归一化
- ITK 配准框架示例
- ITK图像分割三个示例
- 医学图像处理工具包ITK
- ITK resample图像重采样
- ITK图像读写及显示
- [面试算法] 排序算法
- Android studio协同SVN配置和上传、检出
- mysql批量删除数据表
- MFC打开已有的excel文件,并编辑,保存
- C++ 工厂方法设计模式的学习 (Boolan学习笔记第12周)
- ITK图像配准01-学习
- 登录远程服务器出现安全链接问题-java插件支持问题
- 个人网站导航
- label和input放置在同一行,并且设置占比
- ssh框架数据流向:页面——数据库——页面
- Jquery 基础知识
- OpenCV坑
- 4-7. Hibernate_Session 概述&缓存(Hibernate 一级缓存)&Session 核心方法
- 存储过程各个版本