文档

OnePlusOneEvolutionary

一加一进化优化器配置

描述

一个OnePlusOneEvolutionary对象描述传递给函数的1加1渐进优化配置imregister解决图像配准问题。

创建

您可以创建OnePlusOneEvolutionary对象,使用以下方法:

  • imregconfig-返回OnePlusOneEvolutionary对象与用于注册多模态图像的适当度量配对

  • 进入

    metric = registration.optimizer.OnePlusOneEvolutionary;
    命令行上创建OnePlusOneEvolutionary对象的默认设置

属性

全部展开

搜索半径的增长因子,指定为正标量。优化器使用GrowthFactor控制参数空间中搜索半径增长的速率。如果你设置GrowthFactor对于较大的值,优化是快速的,但它可能导致只找到度量的局部极值。如果你设置GrowthFactor对于较小的值,优化速度较慢,但很可能收敛于更好的解决方案。

数据类型:||uint8|uint16|uint32|uint64|int8|int16|int32|int64

搜索半径的最小大小,指定为正标量。ε通过调整搜索半径的最小大小来控制收敛的精度。如果你设置ε对于较小的值,度量的优化更准确,但计算时间较长。如果你设置ε当数值较大时,计算时间减少,但计算精度降低。

数据类型:||uint8|uint16|uint32|uint64|int8|int16|int32|int64

搜索半径的初始大小,指定为正标量。如果你设置InitialRadius数值越大,计算时间越短。但是,过大的值InitialRadius可能导致无法收敛的优化。

数据类型:||uint8|uint16|uint32|uint64|int8|int16|int32|int64

优化器迭代的最大次数,指定为正整数标量。MaximumIterations确定优化器在任何给定金字塔级别上执行的最大迭代次数。注册可以在优化器达到最大迭代次数之前收敛。

数据类型:||uint8|uint16|uint32|uint64|int8|int16|int32|int64

例子

全部折叠

创建一个OnePlusOneEvolutionary对象,并使用它来注册两张使用不同协议获得的膝盖核磁共振图像。

将图像读入工作区。这些图像是多模态的,因为它们有不同的亮度和对比度。

固定= dicomread(“knee1.dcm”);移动= dicomread(“knee2.dcm”);

查看未对齐的图像。

图imshowpair(固定,移动,“缩放”“联合”);

创建适合注册多模式映像的优化器配置对象。

optimizer = registration.optimizer.OnePlusOneEvolutionary
optimizer = registration.optimizer.OnePlusOneEvolutionary Properties: GrowthFactor: 1.050000e+00 Epsilon: 1.500000e-06 InitialRadius: 6.250000e-03 MaximumIterations: 100

创建适合注册多模态映像的度量配置对象。

metric = registration.metric.MattesMutualInformation;

调优优化器的属性,使问题收敛于全局极大值。增加优化器用于解决问题的迭代次数。

优化器。InitialRadius = 0.009;优化器。ε= 1.5e-4; optimizer.GrowthFactor = 1.01; optimizer.MaximumIterations = 300;

执行注册。

movingRegistered = imregister(移动,固定,仿射的优化器,指标);

查看已注册的镜像。

图imshowpair(fixed, movingRegistered,“缩放”“联合”);

算法

进化算法迭代寻找一组参数,产生最好的可能配准结果。它通过扰动或改变来自上一次迭代(父迭代)的参数来实现这一点。如果新的(子)参数产生更好的结果,那么子参数将成为新的父参数,其参数可能会受到更大的干扰。如果父扰动产生更好的结果,那么它仍然是父扰动,下一次扰动就不那么猛烈。

参考文献

[1]斯特纳,M.布莱希比勒,G. Székely, G.格里格。应用于MRI的强度不均匀性的参数估计IEEE医学影像汇刊。卷19,第3期,2000年,第153-165页。

在R2012a中引入

这个话题有用吗?