Main Content

OnePlusOneEvolutionary

One-plus-one evolutionary optimizer configuration

Description

AOnePlusOneEvolutionaryobject describes a one-plus-one evolutionary optimization configuration that you pass to the functionimregisterto solve image registration problems.

Creation

You can create aOnePlusOneEvolutionaryobject using the following methods:

  • imregconfig——返回一个OnePlusOneEvolutionaryobject paired with an appropriate metric for registering multimodal images

  • Entering

    metric = registration.optimizer.OnePlusOneEvolutionary;
    on the command line creates aOnePlusOneEvolutionaryobject with default settings

Properties

expand all

Growth factor of the search radius, specified as a positive scalar. The optimizer usesGrowthFactorto control the rate at which the search radius grows in parameter space. If you setGrowthFactorto a large value, the optimization is fast, but it might result in finding only the metric’s local extrema. If you setGrowthFactorto a small value, the optimization is slower, but it is likely to converge on a better solution.

Data Types:double|single|uint8|uint16|uint32|uint64|int8|int16|int32|int64

Minimum size of the search radius, specified as a positive scalar.Epsiloncontrols the accuracy of convergence by adjusting the minimum size of the search radius. If you setEpsilonto a small value, the optimization of the metric is more accurate, but the computation takes longer. If you setEpsilonto a large value, the computation time decreases at the expense of accuracy.

Data Types:double|single|uint8|uint16|uint32|uint64|int8|int16|int32|int64

Initial size of search radius, specified as a positive scalar. If you setInitialRadiusto a large value, the computation time decreases. However, overly large values ofInitialRadiusmight result in an optimization that fails to converge.

Data Types:double|single|uint8|uint16|uint32|uint64|int8|int16|int32|int64

Maximum number of optimizer iterations, specified as a positive integer scalar.MaximumIterationsdetermines the maximum number of iterations the optimizer performs at any given pyramid level. The registration could converge before the optimizer reaches the maximum number of iterations.

Data Types:double|single|uint8|uint16|uint32|uint64|int8|int16|int32|int64

例子

collapse all

创建一个OnePlusOneEvolutionaryobject and use it to register two MRI images of a knee that were obtained using different protocols.

Read the images into the workspace. The images are multimodal because they have different brightness and contrast.

fixed = dicomread('knee1.dcm'); moving = dicomread('knee2.dcm');

View the misaligned images.

figure imshowpair(fixed, moving,'Scaling','joint');

Figure contains an axes object. The axes object contains an object of type image.

创建优化器configuration object suitable for registering multimodal images.

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

Create the metric configuration object suitable for registering multimodal images.

metric = registration.metric.MattesMutualInformation;

Tune the properties of the optimizer so that the problem will converge on a global maxima. Increase the number of iterations the optimizer will use to solve the problem.

optimizer.InitialRadius = 0.009; optimizer.Epsilon = 1.5e-4; optimizer.GrowthFactor = 1.01; optimizer.MaximumIterations = 300;

Perform the registration.

movingRegistered = imregister(moving,fixed,'affine',optimizer,metric);

View the registered images.

figure imshowpair(fixed, movingRegistered,'Scaling','joint');

Figure contains an axes object. The axes object contains an object of type image.

Algorithms

An evolutionary algorithm iterates to find a set of parameters that produce the best possible registration result. It does this by perturbing, or mutating, the parameters from the last iteration (the parent). If the new (child) parameters yield a better result, then the child becomes the new parent whose parameters are perturbed, perhaps more aggressively. If the parent yields a better result, it remains the parent and the next perturbation is less aggressive.

References

[1] Styner, M., C. Brechbuehler, G. Székely, and G. Gerig. "Parametric estimate of intensity inhomogeneities applied to MRI."IEEE Transactions on Medical Imaging. Vol. 19, Number 3, 2000, pp. 153-165.

Extended Capabilities

版本历史

Introduced in R2012a