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.

Registro de una foto aérea en una ortofoto

En este ejemplo se muestra cómo registrar una foto aérea en una ortofoto. Dos imágenes de la misma escena solo se pueden comparar directamente si están en el mismo sistema de coordenadas. El registro de imágenes es el proceso de transformar una imagen en el sistema de coordenadas de otra imagen.

Paso 1: Leer imágenes

La imagen es una ortofoto que ya ha sido registrada en el suelo.westconcordorthophoto.png La imagen no está registrada ya que fue tomada de un avión y está distorsionada en relación con la ortofoto.westconcordaerial.png

unregistered = imread('westconcordaerial.png'); imshow(unregistered) text(size(unregistered,2),size(unregistered,1)+15, ...     'Image courtesy of mPower3/Emerge', ...     'FontSize',7,'HorizontalAlignment','right');

ortho = imread('westconcordorthophoto.png'); imshow(ortho) text(size(ortho,2),size(ortho,1)+15, ...     'Image courtesy of Massachusetts Executive Office of Environmental Affairs', ...     'FontSize',7,'HorizontalAlignment','right');

Paso 2: Cargar y añadir puntos de control

Ya se han seleccionado cuatro pares de puntos de control. Cargue estos puntos desde un archivo MAT. Si desea continuar con estos puntos, vaya al paso 3: Inferir transformación geométrica.

load westconcordpoints

Opcionalmente, edite o añada a los puntos seleccionados previamente utilizando la Herramienta Selección de Punto de Control ( ).cpselect La función le ayuda a seleccionar pares de puntos de control correspondientes.cpselect Los puntos de control son puntos de referencia que se pueden encontrar en ambas imágenes, como una intersección de carretera o una entidad natural. La imagen no registrada es una imagen RGB, pero solo toma imágenes en escala de grises, por lo que le pasará un plano de la imagen RGB.cpselect

cpselect(unregistered(:,:,1),'westconcordorthophoto.png',movingPoints,fixedPoints)

Guarde los puntos de control eligiendo el menú y, a continuación, la opción.ArchivoGuardar puntos en el espacio de trabajo Guarde los puntos, sobrescribiendo variables y .movingPointsfixedPoints

Paso 3: Inferir transformación geométrica

Debido a que la imagen no registrada fue tomada de un avión, y la topografía es relativamente plana, es probable que la mayor parte de la distorsión sea proyectiva. encontrará los parámetros de la distorsión proyectiva que mejor se adapte a la bandeja de sin salida y que haya elegido.fitgeotransmovingPointsfixedPoints

t_concord = fitgeotrans(movingPoints,fixedPoints,'projective');

Paso 4: Transformar imagen no registrada

Aunque los puntos se seleccionaron en un plano de la imagen no registrada, puede transformar toda la imagen RGB. aplicará la misma transformación a cada plano.imwarp Tenga en cuenta que la especificación de la 'OutputView' garantiza que la imagen registrada se alineará para la comparación de elementos con la ortofoto.

Rfixed = imref2d(size(ortho)); registered = imwarp(unregistered,t_concord,'OutputView',Rfixed);
imshowpair(ortho,registered,'blend')

Paso 5: Ver imagen registrada en el contexto de Orthophoto

Compare visualmente qué tan bien se superpone la imagen registrada en la ortofoto. Trate de volver a .Paso 2: Elija Puntos de Control y usando más de cuatro pares de puntos ¿Los resultados son mejores? ¿Qué pasa si los puntos se agrupan?

Si desea experimentar con imágenes más grandes, siga los pasos anteriores para registrarse en .concordaerial.pngconcordorthophoto.png

Consulte también

| | |

Temas relacionados