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.

imregmtb

Registre imágenes 2D utilizando mapas de bits de umbral medio

Descripción

ejemplo

[R1,R2,...,Rn,shift] = imregmtb(M1,M2,...,Mn,F) registra un número arbitrario de imágenes en movimiento con respecto a la imagen fija (referencia), utilizando la técnica de mapa de bits de umbral medio.M1,M2,...,MnF Las imágenes registradas se devuelven en , y el desplazamiento estimado de las imágenes registradas se devuelve en .R1,R2,...,Rnshift

La técnica de mapa de bits de umbral medio es eficaz para registrar imágenes capturadas con exposiciones variables. considera sólo las traducciones, no las rotaciones u otros tipos de transformaciones geométricas.imregmtb

Ejemplos

contraer todo

Lea una serie de imágenes con diferentes exposiciones.

I1 = imread('office_1.jpg'); I2 = imread('office_2.jpg'); I3 = imread('office_3.jpg'); I4 = imread('office_4.jpg'); I5 = imread('office_5.jpg'); I6 = imread('office_6.jpg');

Las imágenes fueron capturadas desde una cámara fija, y no hay objetos en movimiento en la escena. Para este ejemplo, simule el movimiento de la cámara, o el nerviosismo, traduciendo cada imagen horizontal y verticalmente en una cantidad aleatoria en el rango [–30, 30] píxeles. Almacene los valores de traducción para las cinco imágenes en movimiento en la matriz 5 por 2.t Designe la sexta imagen, como la imagen fija (o de referencia).I6 No aplique el jitter a esta imagen.

t = randi([-30 30],5,2); I1 = imtranslate(I1,t(1,:)); I2 = imtranslate(I2,t(2,:)); I3 = imtranslate(I3,t(3,:)); I4 = imtranslate(I4,t(4,:)); I5 = imtranslate(I5,t(5,:));

Para comparar las posiciones de la imagen, muestre una región de interés (ROI) desde el centro de cada imagen. El vector especifica la coordenada - y -de la esquina superior izquierda, y el ancho y alto del ROI.roixy

roi = [140 260 200 200]; montage({imcrop(I1,roi),imcrop(I2,roi),imcrop(I3,roi), ...     imcrop(I4,roi),imcrop(I5,roi),imcrop(I6,roi)}) title('Misaligned Images')

Registre las imágenes cambiadas espacialmente mediante mapas de bits de umbral medio. Muestra un ROI desde el centro de cada imagen.

[R1,R2,R3,R4,R5,shift] = imregmtb(I1,I2,I3,I4,I5,I6); montage({imcrop(R1,roi),imcrop(R2,roi),imcrop(R3,roi), ...     imcrop(R4,roi),imcrop(R5,roi),imcrop(I6,roi)}) title('Registered Images')

Las imágenes se ven bien alineadas.

Examine el desplazamiento estimado, , de cada imagen en movimiento con respecto a la imagen fija. representa la transformación estimada que se debe aplicar a la imagen en movimiento para alinearla con la imagen fija.shiftshift

shift
shift = 5×2

   -26    25
   -25    14
    23    -3
   -25   -28
    -8   -28

Compare el desplazamiento estimado con el desplazamiento real. Recuerde que la transformación se aplicó a la imagen fija para simular el nerviosismo de cada imagen en movimiento.t Por lo tanto, la transformación es análoga a la transformación devuelta por .-tshift

-t
ans = 5×2

   -19    25
   -25    14
    23    -3
   -25   -28
    -8   -28

La función hace un buen trabajo estimando el desplazamiento de cada fotograma.imregmtb

Argumentos de entrada

contraer todo

Imágenes en movimiento, especificadas como una serie de imágenes en escala de grises o imágenes RGB con exposiciones idénticas o variables. Las imágenes deben tener el mismo tamaño y tipo de datos.

Tipos de datos: single | double | uint8 | uint16

Imagen fija, especificada como una imagen en escala de grises o una imagen RGB. deben tener el mismo tamaño y tipo de datos que las imágenes en movimiento, .FM1,M2,...,Mn

Tipos de datos: single | double | uint8 | uint16

Argumentos de salida

contraer todo

Imágenes registradas, devueltas como una serie de imágenes en escala de grises o imágenes RGB. Las imágenes registradas tienen el mismo tamaño y tipo de datos que las imágenes en movimiento, .M1,M2,...,Mn

Desplazamiento estimado en la dirección horizontal y vertical de las imágenes registradas, devuelto como una matriz numérica -by-2.nn

Referencias

[1] Reinhard, E., W. Heidrich, P. Debevec, S. Pattanaik, G. Ward, K. Myszkowski. High Dynamic Range Imaging, Second Edition. San Francisco, CA: Morgan Kaufmann Publishers Inc., 2010, pp. 155–170.

Introducido en R2018a