Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

OnePlusOneEvolutionary

Configuración del optimizador evolutivo uno más uno

Descripción

Un objeto describe una configuración de optimización evolutiva uno más uno que se pasa a la función para resolver problemas de registro de imágenes.OnePlusOneEvolutionaryimregister

Creación

Puede crear un objeto utilizando los métodos siguientes:OnePlusOneEvolutionary

  • — Devuelve un objeto emparejado con una métrica adecuada para registrar imágenes multimodalesimregconfigOnePlusOneEvolutionary

  • Al introducir en la línea de comandos se crea un objeto con la configuración predeterminada

    metric = registration.optimizer.OnePlusOneEvolutionary;
    OnePlusOneEvolutionary

Propiedades

expandir todo

Factor de crecimiento del radio de búsqueda, especificado como un escalar positivo. El optimizador utiliza para controlar la velocidad a la que el radio de búsqueda crece en el espacio de parámetros.GrowthFactor Si establece un valor grande, la optimización es rápida, pero podría dar lugar a la búsqueda de solo el extremo local de la métrica.GrowthFactor Si establece un valor pequeño, la optimización es más lenta, pero es probable que converja en una mejor solución.GrowthFactor

Tipos de datos: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64

Tamaño mínimo del radio de búsqueda, especificado como escalar positivo. controla la precisión de la convergencia ajustando el tamaño mínimo del radio de búsqueda.Epsilon Si establece un valor pequeño, la optimización de la métrica es más precisa, pero el cálculo tarda más tiempo.Epsilon Si establece un valor grande, el tiempo de cálculo cesa a expensas de la precisión.Epsilon

Tipos de datos: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64

Tamaño inicial del radio de búsqueda, especificado como un escalar positivo. Si establece en un valor grande, el tiempo de cálculo disminuye.InitialRadius Sin embargo, los valores demasiado grandes de podrían dar lugar a una optimización que no puede converger.InitialRadius

Tipos de datos: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64

Número máximo de iteraciones del optimizador, especificado como un escalar entero positivo. determina el número máximo de iteraciones que realiza el optimizador en un nivel de pirámide determinado.MaximumIterations El registro podría converger antes de que el optimizador alcance el número máximo de iteraciones.

Tipos de datos: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64

Ejemplos

contraer todo

Cree un objeto y utilícelo para registrar dos imágenes de RMN de una rodilla que se obtuvieron utilizando protocolos diferentes.OnePlusOneEvolutionary

Lea las imágenes en el espacio de trabajo. Las imágenes son multimodales porque tienen diferente brillo y contraste.

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

Vea las imágenes desalineadas.

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

Cree el objeto de configuración del optimizador adecuado para registrar imágenes multimodales.

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

Cree el objeto de configuración de métricas adecuado para registrar imágenes multimodales.

metric = registration.metric.MattesMutualInformation;

Ajuste las propiedades del optimizador para que el problema converja en un máximo global. Aumente el número de iteraciones que utilizará el optimizador para resolver el problema.

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

Realice el registro.

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

Ver las imágenes registradas.

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

Algoritmos

Un algoritmo evolutivo itera para encontrar un conjunto de parámetros que producen el mejor resultado de registro posible. Lo hace perturbando o mutando los parámetros de la última iteración (el elemento primario). Si los nuevos parámetros (secundarios) producen un mejor resultado, el elemento secundario se convierte en el nuevo elemento primario cuyos parámetros se perturban, tal vez de forma más agresiva. Si el padre produce un mejor resultado, sigue siendo el padre y la siguiente perturbación es menos agresiva.

Referencias

[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.

Introducido en R2012a