Contenido principal

imregcorr

Estimar una transformación geométrica para alinear dos imágenes 2D utilizando la correlación cruzada

Descripción

tform = imregcorr(moving,fixed) estima la transformación geométrica para alinear una imagen, moving, con una imagen de referencia, fixed utilizando correlación de gradiente.

ejemplo

tform = imregcorr(moving,Rmoving,fixed,Rfixed) estima la transformación geométrica para alinear una imagen, moving, con una imagen de referencia, fixed. Rmoving y Rfixed son objetos de referencia espacial que contienen información espacial sobre las imágenes moving y fixed, respectivamente. La transformación geométrica, tform, define la aplicación de puntos en el sistema de coordenadas mundial.

tform = imregcorr(___,tformType) también especifica el tipo de transformación, tformType.

tform = imregcorr(___,Name=Value) le permite especificar el método de correlación cruzada como correlación de fase, y habilitar o deshabilitar el ventaneo para la correlación de fase utilizando argumentos nombre-valor.

[tform,peakcorr] = imregcorr(___) también devuelve el valor de la correlación de picos, peakcorr.

Ejemplos

contraer todo

Lea una imagen de referencia en el área de trabajo.

fixed  = imread("cameraman.tif");

Cree una imagen variable sintética escalando y rotando la imagen fija.

scaleFactor = 2.3;
theta = 20;
translation = [0 0];
tform = simtform2d(scaleFactor,theta,translation);
moving = imwarp(fixed,tform);

Añada ruido sintético a la imagen variable.

moving = moving + uint8(10*rand(size(moving)));

Muestre la imagen fija junto a la imagen variable.

imshowpair(fixed,moving,"montage")

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

Estime la transformación necesaria para alinear las imágenes utilizando imregcorr.

tformEstimate = imregcorr(moving,fixed);

Aplique la transformación geométrica estimada a la imagen variable. Especifique el argumento nombre-valor "OutputView" para obtener una imagen registrada del mismo tamaño y con los mismos límites mundiales que la imagen de referencia.

Rfixed = imref2d(size(fixed));
movingReg = imwarp(moving,tformEstimate,"OutputView",Rfixed);

Visualice la imagen original y la imagen registrada una al lado de la otra para comprobar el registro. Después, visualice la imagen registrada superpuesta sobre la original utilizando la opción "falsecolor" para resaltar cualquier área donde las imágenes difieran.

imshowpair(fixed,movingReg,"montage")

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

imshowpair(fixed,movingReg,"falsecolor");

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

Argumentos de entrada

contraer todo

Imagen variable o la imagen que se desea registrar, especificada como una imagen en escala de grises, binaria o RGB. imregcorr convierte las imágenes RGB a escala de grises utilizando rgb2gray antes del procesamiento.

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

Imagen de referencia en la orientación objetivo, especificada como imagen en escala de grises, binaria o RGB. imregcorr convierte las imágenes RGB a escala de grises utilizando rgb2gray antes del procesamiento.

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

Información de referencia espacial de la imagen variable, especificada como un objeto imref2d.

Información de referencia espacial de la imagen fija, especificada como un objeto imref2d.

Tipo de transformación que desea estimar, especificado como uno de estos valores.

ValorDescripción
"translation"

Transformación de traslación

Cuando use la opción "translation" con objetos de referencia espacial Rmoving y Rfixed, las imágenes de entrada deben tener las mismas extensiones de píxeles en las coordenadas mundiales.

"rigid"

Transformación rígida: traslación y rotación

Cuando use la opción "rigid" con objetos de referencia espacial Rmoving y Rfixed, las imágenes de entrada deben tener las mismas extensiones de píxeles en las coordenadas mundiales.

"similarity"

Transformación de similitud: traslación, rotación y escalado isotrópico

Cuando se usa la opción "similarity" con el método de correlación de fase, imregcorr no detecta diferencias de escala inferiores a 1/4 o superiores a 4.

Tipos de datos: char | string

Argumentos de par nombre-valor

contraer todo

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: tform = imregcorr(moving,fixed,Method="phasecorr") utiliza la correlación de fase.

Desde R2024b

Método de correlación, especificado como "gradcorr" para la correlación de gradiente o "phasecorr" para la correlación de fase. Si la imagen de entrada es un vector, utilice la correlación de fase.

Usar ventaneo para suprimir los efectos de manchado espectral en el dominio de frecuencia, especificado como 1 (true) o 0 (false) numérico o lógico. Cuando Window es true y Method es "phasecorr", la función imregcorr realiza ventaneo utilizando un filtro de Blackman. La función ignora el argumento de Window cuando Method es "gradcorr".

Para aumentar la estabilidad de los resultados del registro para la correlación de fase, especifique Window como true. Sin embargo, si las características comunes de las imágenes están orientadas a lo largo de los bordes, establecer Window en false en ocasiones puede proporcionar resultados de registro superiores.

Argumentos de salida

contraer todo

Transformación geométrica, devuelta como objeto de transformación geométrica según el tipo de transformación, tformType.

tformTypeObjeto de transformación geométrica
"translation"transltform2d
"rigid"rigidtform2d
"similarity"simtform2d

Valor de correlación de picos, devuelto como número en el intervalo [0, 1]. Un valor de correlación de picos mayor indica mayor confianza en la transformación geométrica estimada.

Sugerencias

  • Si la imagen es del tipo double, puede mejorar el rendimiento convirtiendo la imagen a single con im2single antes del registro. Las imágenes de entrada del tipo double hacen que el algoritmo calcule FFT en double.

  • Debido a las diferencias en los algoritmos de correlación de gradiente y correlación de fase, el valor de correlación de picos peakcorr no debe utilizarse como métrica para comparar el rendimiento de los algoritmos.

Referencias

[1] Reddy, B. S. and Chatterji, B. N. "An FFT-Based Technique for Translation, Rotation, and Scale-Invariant Image Registration." IEEE Transactions on Image Processing, Vol. 5, No. 8, August 1996.

[2] Tzimiropoulos, Georgios, Vasileios Argyriou, Stefanos Zafeiriou, and Tania Stathaki. “Robust FFT-Based Scale-Invariant Image Registration with Image Gradients.” IEEE Transactions on Pattern Analysis and Machine Intelligence 32, no. 10 (October 2010): 1899–1906. https://doi.org/10.1109/TPAMI.2010.107.

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido en R2014a

expandir todo