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.

imregcorr

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

Descripción

tform = imregcorr(moving,fixed) estima la transformación geométrica para alinear una imagen, moving, con una imagen de referencia, fixed. La función devuelve un objeto de transformación geométrica, tform, que asigna píxeles de moving a píxeles de fixed.

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. El objeto de transformación devuelto, tform, define la asignación de puntos en el sistema de coordenadas mundial.

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

tform = imregcorr(___,Window=window) también especifica si realizar ventaneo en el dominio de frecuencia. Para aumentar la estabilidad de los resultados del registro, 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.

En las versiones anteriores a la R2021a, utilice la sintaxis equivalente tform = imregcorr(__,"Window",window).

[tform,peakcorr] = imregcorr(___) también devuelve la correlación de picos, peakcorr, de la diferencia de fase entre las dos imágenes.

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")

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")

imshowpair(fixed,movingReg,"falsecolor");

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.

Nota

La relación de aspecto de moving afecta a la transformada de salida tform. Para obtener los mejores resultados, utilice una imagen cuadrada.

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.

Nota

La relación de aspecto de fixed afecta a la transformada de salida tform. Para obtener los mejores resultados, utilice una imagen cuadrada.

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 use la opción "similarity", el algoritmo de correlación de fase solo es de escala invariable dentro de algunos intervalos de diferencia de escala entre las imágenes fijas y las variables. imregcorr limita el espacio de búsqueda a diferencias de escala dentro del intervalo [1/4, 4]. imregcorr no detecta diferencias de escala inferiores a 1/4 o superiores a 4.

Tipos de datos: char | string

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 sea true, la función imregcorr realiza ventaneo utilizando un filtro de Blackman.

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 la correlación de picos de la diferencia de fase entre las dos imágenes, devuelto como escalar numérico.

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.

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

Capacidades ampliadas

Historial de versiones

Introducido en R2014a

expandir todo