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.

imregister

Registro de imagen basado en la intensidad

Descripción

ejemplo

moving_reg = imregister(moving,fixed,transformType,optimizer,metric) transforma la imagen 2D o 3D en escala de grises moving, de manera que se registra con la imagen de referencia fixed. transformType define el tipo de transformación que se desea realizar. metric define la medida cuantitativa de similitud entre las imágenes que se desea optimizar. optimizer describe el método para optimizar la métrica. La función devuelve la imagen registrada moving_reg.

[moving_reg,R_reg] = imregister(moving,Rmoving,fixed,Rfixed,transformType,optimizer,metric) transforma la imagen con referencia espacial moving de forma que se registra con la imagen con referencia espacial fixed. Rmoving y Rfixed son objetos de referencia espacial que describen los límites de las coordenadas mundiales y la resolución de moving y fixed.

___ = imregister(___,Name,Value) especifica opciones adicionales con uno o más argumentos de par nombre-valor.

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, especificando 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;

Realice el registro.

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

Visualice las imágenes registradas.

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 matriz numérica que representa una imagen 2D en escala de grises o un arreglo numérico 3D que representa un 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 un objeto imref2d o un objeto imref3d.

Imagen de referencia en la orientación objetivo, especificada como matriz numérica que representa una imagen 2D en escala de grises o un arreglo numérico 3D que representa un volumen 3D en escala de grises. La imagen de referencia debe tener la misma dimensionalidad que la imagen que se desea registrar moving.

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

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

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

ValorDescripción
"translation"Traslación (x,y) 2D o traslación (x,y,z) 3D.
"rigid"Transformación rígida que consiste en traslación y rotación.
"similarity"Transformación de similitud no reflectiva que consiste en traslación, rotación y escala.
"affine"Transformación afín que consiste en traslación, rotación, escala y estiramiento.

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 un objeto optimizador RegularStepGradientDescent o OnePlusOneEvolutionary.

Métrica de similitud de la imagen que se desea optimizar durante el registro, especificada como un objeto métrico 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.

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

Ejemplo: "DisplayOptimization",1 habilita el modo de optimización detallada.

Indicador de optimización detallada, especificado como el valor lógico true o false. Controla si imregister muestra información sobre la optimización en la ventana de comandos durante el proceso de registro.

Tipos de datos: logical

Transformación geométrica inicial, especificada como un objeto affinetform2d o affinetform3d.

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.

Tipos de datos: double

Argumentos de salida

contraer todo

Imagen registrada, devuelta como matriz numérica 2D que representa una imagen 2D en escala de grises o un arreglo numérico 3D que representa un volumen 3D en escala de grises. Cualquier píxel de relleno que no corresponda con una ubicación en la imagen original es 0.

Información de referencia espacial asociada a la imagen registrada, devuelta como un objeto imref2d o un objeto imref3d.

Sugerencias

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

  • Cree un optimizer y una metric con la función imregconfig antes de llamar a imregister. Para obtener buenos resultados del registro de imagen 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. Por ejemplo, si aumenta el número de iteraciones del optimizador, reduce el tamaño de paso del optimizador o cambia el número de muestras en una métrica estocástica, el registro mejora hasta cierto punto, a costa del rendimiento. Para obtener más información sobre los diferentes parámetros que puede modificar, consulte la salida de imregconfig.

  • Si el escalado espacial de sus imágenes difiere en más de un 10%, cambie el tamaño con imresize antes de registrarlas.

  • Utilice imshowpair o imfuse para visualizar los resultados del registro.

  • Puede utilizar imregister en un flujo de trabajo automatizado para registrar varias imágenes.

  • Cuando tenga información de referencia espacial sobre la imagen que se desea registrar, especifique la información para imregister utilizando objetos de referencia espacial. Esto contribuye a que imregister converja a mejores resultados de manera más rápida dado que se pueden tener en cuenta las diferencias de escala.

Historial de versiones

Introducido en R2012a

expandir todo