Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

imregtform

Estimar una transformación geométrica para alinear dos imágenes 2D o 3D

Descripción

ejemplo

tform = imregtform(moving,fixed,tformType,optimizer,metric) estima la transformación geométrica que alinea la imagen en movimiento moving con la imagen fija fixed. tformType define el tipo de transformación que se desea estimar. optimizer describe el método para optimizar la métrica. metric define la medida cuantitativa de similitud entre las imágenes que se desea optimizar.

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

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

Ejemplos

contraer todo

Lea dos imágenes. En este ejemplo se utilizan dos imágenes de resonancia magnética (RM) de una rodilla. La imagen fija es una imagen con eco de espín, mientras que la imagen en movimiento es una imagen con eco de espín con recuperación de inversión. Los dos cortes sagitales se obtuvieron al mismo tiempo, pero están ligeramente desalineados.

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

Visualice las imágenes desalineadas.

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

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

Cree el optimizador y la métrica. Especifique la modalidad como "multimodal", dado que las imágenes proceden de diferentes sensores.

[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 conseguir que el problema converja en unos máximos globales y que permita 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 desea registrar (moving) a la imagen de referencia (fixed).

tform = imregtform(moving,fixed,"affine",optimizer,metric)
tform = 
  affinetform2d with properties:

    Dimensionality: 2
                 A: [3x3 double]

Aplique la transformación a la imagen que está registrando (moving) utilizando la función imwarp. El ejemplo utiliza el argumento de nombre-valor "OutputView" para conservar los límites del mundo y la resolución de la imagen de referencia al formar la imagen transformada.

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

Visualice las imágenes registradas.

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

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

Argumentos de entrada

contraer todo

Imagen que se desea registrar, especificada como imagen 2D en escala de grises o volumen 3D en escala de grises.

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

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

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

Información de referencia espacial asociada a la imagen que se desea registrar, especificada como objeto imref2d o imref3d.

Información de referencia espacial asociada a la imagen (fija) de referencia, especificada como objeto imref2d o imref3d.

Tipo de transformación geométrica, especificado como uno de estos valores:

ValorDescripción
"translation"Transformación de traslación
"rigid"Transformación rígida: traslación y rotación
"similarity"Transformación de similitud: traslación, rotación y escalado isotrópico
"affine"Transformación afín: traslación, rotación, escalado anisotrópico y cizallado

Los tipos de transformación "similarity" y "affine" no son compatibles con la reflexión.

Tipos de datos: char | string

Método para optimizar la métrica de similitud, especificado como objeto RegularStepGradientDescent o OnePlusOneEvolutionary.

Métrica de similitud de la imagen que se desea optimizar durante el registro, especificada como objeto MeanSquares o MattesMutualInformation.

Argumentos de par nombre-valor

Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos de nombre-valor deben aparecer después de otros argumentos. Sin embargo, el orden de los pares no importa.

Ejemplo: PyramidLevels=4 utiliza cuatro niveles de pirámide.

En las versiones anteriores a la R2021a, utilice comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: "PyramidLevels",4 utiliza cuatro niveles de pirámide.

Información de optimización de la visualización en la ventana de comandos durante el proceso de registro, especificada como el valor lógico true o false.

Tipos de datos: logical

Transformación geométrica inicial, especificada como un objeto de transformación geométrica que aparece en la tabla.

Objeto de transformación geométricaDescripción
Transformaciones geométricas 2D
transltform2dTransformación de traslación
rigidtform2dTransformación rígida: traslación y rotación
simtform2dTransformación de similitud: traslación, rotación y escalado isotrópico
affinetform2dTransformación afín: traslación, rotación, escalado anisotrópico, reflexión y cizallado
Transformaciones geométricas 3D
transltform3dTransformación de traslación
rigidtform3dTransformación rígida: traslación y rotación
simtform3dTransformación de similitud: traslación, rotación y escalado isotrópico
affinetform3dTransformación afín: traslación, rotación, escalado anisotrópico, reflexión y cizallado

Nota

También puede especificar InitialTransformation como un objeto affine2d o affine3d. No obstante, estos objetos no están recomendados. Para obtener más información, consulte Consideraciones relativas a la compatibilidad.

Número de niveles de pirámide usados durante el proceso de registro, especificado como entero positivo.

Ejemplo: PyramidLevels=4 establece el número de niveles de pirámide en 4.

Argumentos de salida

contraer todo

Transformación geométrica, devuelta como objeto de transformación geométrica según la dimensionalidad de las imágenes y el tipo de transformación, tformType.

Tipo de transformación

Objeto de transformación geométrica 2DObjeto de transformación geométrica 3D
"translation"transltform2dtransltform3d
"rigid"rigidtform2drigidtform3d
"similarity"simtform2dsimtform3d
"affine"affinetform2daffinetform3d

Sugerencias

  • Cuando tenga información de referencia espacial, es importante que la proporcione a imregtform, utilizando objetos de referencia espacial. Esta información contribuye a que imregtform converja a mejores resultados de manera más rápida, dado que se pueden considerar las diferencias de escala.

  • Tanto imregtform como imregister utilizan el mismo algoritmo de registro subyacente. imregister realiza el paso adicional de remuestrear moving para producir la imagen de salida registrada a partir de la estimación de la transformación geométrica calculada por imregtform. Utilice imregtform cuando desee acceder a la transformación geométrica que relaciona moving con fixed. Utilice imregister cuando desee una imagen de salida registrada.

  • Para obtener buenos resultados del registro de imágenes basado en la optimización, suele ser necesario modificar los ajustes del optimizador o la métrica para el par de imágenes que se registra. La función imregconfig proporciona una configuración predeterminada que debería considerarse únicamente como punto de partida. Para obtener más información sobre los diferentes parámetros que se pueden modificar, consulte la salida de imregconfig.

Historial de versiones

Introducido en R2013a

expandir todo