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.

Registrar una foto aérea en una Orthophoto

Este ejemplo muestra cómo registrar una foto aérea en una ortofototeca. 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 ortofofa 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 ortofofa.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: cargue y agregue 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 los puntos preselecciona utilizando la herramienta Selección de punto de control ().cpselect La función le ayuda a elegir pares de puntos de control correspondientes.cpselect Los puntos de control son hitos que puede encontrar en ambas imágenes, como una intersección de carreteras o una característica natural. La imagen no registrada es una imagen RGB, pero solo toma imágenes en escala de grises, por lo que 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.FileSave Points to Workspace 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 perdida y que eligió.fitgeotransmovingPointsfixedPoints

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

Paso 4: transformar la imagen no registrada

Aunque los puntos se han seleccionado 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 elementwise con la ortofearto.

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

Paso 5: ver imagen registrada en contexto de Orthophoto

imshowpair(ortho,registered,'blend')

Compare visualmente qué tan bien se superpone la imagen registrada en la ortofofa. Intenta volver a.Step 2: Choose Control Points and using more than four pairs of points ¿Los resultados son mejores? ¿Qué pasa si los puntos están agrupados?

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

Consulte también

| | |

Temas relacionados