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.

imregtform

Estimar la transformación geométrica que alinea dos imágenes 2D o 3D

Descripción

ejemplo

tform = imregtform(moving,fixed,transformType,optimizer,metric) estima la transformación geométrica que alinea la imagen en movimiento con la imagen fija. es un vector escalar o de caracteres de cadena que define el tipo de transformación que se va a estimar. es un objeto que describe el método para optimizar la métrica. es un objeto que define la medida cuantitativa de similitud entre las imágenes para optimizar.movingfixedtransformTypeoptimizermetric La salida es un objeto de transformación geométrica que se asigna a .tformmovingfixed

tform = imregtform(moving,Rmoving,fixed,Rfixed,transformType,optimizer,metric) estima la transformación geométrica donde y especificar los objetos de referencia espacial asociados con las imágenes y.RmovingRfixedmovingfixed La salida es un objeto de transformación geométrica en unidades definidas por los objetos de referencia espacial y .tformRmovingRfixed

tform = imregtform(___,Name,Value) estima la transformación geométrica utilizando pares nombre-valor para controlar aspectos de la operación.

Ejemplos

contraer todo

Lee dos imágenes. Este ejemplo utiliza dos imágenes de resonancia magnética (RM) de una rodilla. La imagen fija es una imagen de eco de giro, mientras que la imagen en movimiento es una imagen de eco de giro con recuperación de inversión. Las dos rodajas sagitales fueron adquiridas al mismo tiempo, pero están ligeramente fuera de alineación.

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

Vea las imágenes desalineadas.

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

Cree el optimizador y la métrica, estableciendo la modalidad a ya que las imágenes provienen de diferentes sensores.'multimodal'

[optimizer, metric] = imregconfig('multimodal')
optimizer =    registration.optimizer.OnePlusOneEvolutionary    Properties:          GrowthFactor: 1.050000e+00               Epsilon: 1.500000e-06         InitialRadius: 6.250000e-03     MaximumIterations: 100 
metric =    registration.metric.MattesMutualInformation    Properties:     NumberOfSpatialSamples: 500      NumberOfHistogramBins: 50               UseAllPixels: 1 

Ajuste las propiedades del optimizador para que el problema converja en un máximo global y para permitir más iteraciones.

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

Busque la transformación geométrica que asigna la imagen que se va a registrar ( ) a la imagen de referencia ( ).movingfixed

tform = imregtform(moving, fixed, 'affine', optimizer, metric)
tform =    affine2d with properties:      Dimensionality: 2                  T: [3x3 double]  

Aplique la transformación a la imagen que se está registrando ( ) utilizando la función.movingimwarp En el ejemplo se utiliza el parámetro para conservar los límites mundiales y la resolución de la imagen de referencia al formar la imagen transformada.'OutputView'

movingRegistered = imwarp(moving,tform,'OutputView',imref2d(size(fixed)));

Ver las imágenes registradas.

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

Argumentos de entrada

contraer todo

Imagen que se va a registrar, especificada como una imagen en escala de grises 2D o 3D.

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

Información de referencia espacial asociada a la imagen que se va a registrar, especificada como u objeto.imref2dimref3d

Imagen de referencia en la orientación de destino, especificada como una imagen en escala de grises 2D o 3D.

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

Información de referencia espacial asociada a la imagen de referencia (fija), especificada como u objeto.imref2dimref3d

Transformación geométrica que se aplicará a la imagen que se va a registrar, especificada como uno de los siguientes valores:

ValorDescripción
'translation'Traducción.(x,y)
'rigid'Transformación rígida consistente en traslación y rotación.
'similarity'Transformación de similitud no reflectante que consiste en traducción, rotación y escala.
'affine'Transformación afín que consiste en traslación, rotación, escala y cizallamiento.

Los tipos y los tipos de transformación siempre implican transformaciones no reflectantes.'similarity''affine'

Tipos de datos: char | string

Método para optimizar la métrica de similitud, especificada como un objeto o optimizador.RegularStepGradientDescentOnePlusOneEvolutionary

Métrica de similitud de imagen que se optimizará durante el registro, especificada como un objeto o objeto métrico.MeanSquaresMattesMutualInformation

Argumentos de par nombre-valor

Especifique pares opcionales separados por comas de argumentos. es el nombre del argumento y es el valor correspondiente. deben aparecer entre comillas.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como .Name1,Value1,...,NameN,ValueN

Ejemplo: permite el modo de optimización detallada.'DisplayOptimization',1

Indicador de optimización detallado, especificado como el par separado por comas que consta de , y el valor lógico o .'DisplayOptimization'truefalse Controla si muestra información de optimización en la ventana de comandos durante el proceso de registro.imregister

Tipos de datos: logical

Inicio de la transformación geométrica, especificada como el par separado por comas que consta de y un objeto u.'InitialTransformation'affine2daffine3d

Número de niveles de pirámide utilizados durante el proceso de registro, especificado como el par separado por comas que consta de y un entero positivo.'PyramidLevels'

Ejemplo: establece el número de niveles de pirámide en .'PyramidLevels',44

Argumentos de salida

contraer todo

Transformación geométrica, devuelta como u objeto.affine2daffine3d Si las matrices de entrada son 3D, devuelve un objeto.imregtformaffine3d

Sugerencias

  • Cuando tiene información de referencia espacial disponible, es importante proporcionar esta información a , utilizando objetos de referencia espacial.imregtform Esta información ayuda a converger para obtener mejores resultados más rápidamente porque se pueden considerar las diferencias de escala.imregtform

  • Ambos y utilice el mismo algoritmo de registro subyacente. realiza el paso adicional de remuestreo para producir la imagen de salida registrada a partir de la estimación de transformación geométrica calculada por .imregtformimregisterimregistermovingimregtform Utilícelo cuando desee acceder a la transformación geométrica relacionada con .imregtformmovingfixed Utilícelo cuando desee una imagen de salida registrada.imregister

  • Obtener buenos resultados del registro de imágenes basado en optimización normalmente requiere modificar la configuración del optimizador y/o métrica para el par de imágenes que se están registrando. La función proporciona una configuración predeterminada que solo debe considerarse un punto de partida.imregconfig Consulte la salida de la para obtener más información sobre los diferentes parámetros que se pueden modificar.imregconfig

Introducido en R2013a