Has comentado que estarías abierto a una solución QGIS. Esto me ha funcionado.
Como sabes, la georreferenciación de una imagen requiere identificar puntos en la imagen y asignar coordenadas del mundo real a las coordenadas de la pantalla en la imagen. Como comenté en la pregunta, no conozco ninguna forma de identificar los marcadores en una imagen de forma automática. si las imágenes tienen la misma resolución y tienen las mismas características/marcadores en ellas, puedes determinar cuáles son las coordenadas de la imagen y luego vincularlas a las coordenadas del mundo real en un script. La parte difícil que hay que hacer manualmente es identificar las coordenadas de la imagen. Si la mayoría de las imágenes tienen las mismas coordenadas de imagen, pero algunas son diferentes, esto será bastante fácil. Puede tener un valor por defecto y luego identificar un desplazamiento X y un desplazamiento Y para cada imagen no predeterminada. Hice esto para unas 1200 imágenes tif. Utilicé la herramienta XY de Photoshop para identificar las coordenadas de la imagen, pero también puedes utilizar IRFANVIEW, que es una descarga gratuita y una excelente herramienta de edición de imágenes (ver las instrucciones más abajo para determinar las coordenadas).
Las coordenadas de la imagen comienzan en la parte superior izquierda y nuestro sistema espacial comienza (tiene su eje) en la parte inferior izquierda, pero eso no importará ya que sólo estamos atando una a otra usando el comando gdal_translate.
1) Identificar las coordenadas de la imagen por defecto. Las tenía en una lista como esta y la mayoría de mis imágenes (mapas de gama de animales en mi caso) funcionaban bien usando estos números...
1) 4, 366
2) 586, 167
3) 239, 6
4) 287, 507 (centro de la península)
5) 68, 570
6) 19, 256
Sin embargo, a veces los "marcadores" no estaban en la misma ubicación y tenía que identificar un desplazamiento en X y/o Y donde las coordenadas de la pantalla eran diferentes por un número n de píxeles (el desplazamiento podía ser positivo o negativo).
T_02_01.tiff (tiene un desplazamiento Y de 5)
1) 4, 371
2) A continuación tuve que escribir el primero de los 2 archivos por lotes de Windows (.bat) que funcionan juntos. Las variables que se establecen en la parte superior x1-x6 y y1-y6 representan mis coordenadas de pantalla por defecto. Luego utilicé declaraciones IF para los desplazamientos en las imágenes individuales que no eran por defecto (tenían desplazamientos X o Y o ambos). Luego uso nuevas variables x, y y sumo el desplazamiento y las x, y originales. La variable %1 es el nombre del archivo que se pasa a este archivo por lotes desde el segundo archivo por lotes. Deberá actualizar las rutas de entrada y salida (mi carpeta de entrada era INPUT_NEW y la de salida TMP). Ponga ambos archivos batch en la raíz de las carpetas de entrada y salida y funcionará como lo tengo aquí. SET x1=4
SET x2=586
SET x3=239
SET x4=287
SET x5=68
SET x6=19
SET y1=366
SET y2=167
SET y3=6
SET y4=507
SET y5=570
SET y6=256
SET XSHIFT=0
SET YSHIFT=0
IF %1 == T_01_04.tiff (
SET YSHIFT=1
)
IF %1 == T_01_06.tiff (
SET YSHIFT=5
)
IF %1 == T_02_01.tiff (
SET YSHIFT=5
)
IF %1 == T_64_17.tiff (
SET XSHIFT=1
SET YSHIFT=-6
)
REM MÁS CONDICIONES AQUÍ...
SET /a x1b=%XSHIFT%+%x1%
SET /a x2b=%XSHIFT%+%x2%
SET /a x3b=%XSHIFT%+%x3%
SET /a x4b=%XSHIFT%+%x4%
SET /a x5b=%XSHIFT%+%x5%
SET /a x6b=%XSHIFT%+%x6%
SET /a y1b=%YSHIFT%+%y1%
SET /a y2b=%YSHIFT%+%y2%
SET /a y3b=%YSHIFT%+%y3%
SET /a y4b=%YSHIFT%+%y4%
SET /a y5b=%YSHIFT%+%y5%
SET /a y6b=%YSHIFT%+%y6%
gdal_translate -of GTiff -gcp %x1b% %y1b% 498353 9.75475e+06 -gcp %x2b% %y2b% 1.13853e+06 9.99319e+06 -gcp %x3b% %y3b% 747172 1. 01571e+07 -gcp %x4b% %y4b% 818043 9.6109e+06 -gcp %x5b% %y5b% 572611 9.5335e+06 -gcp %x6b% %y6b% 508386 9.87613e+06 "INPUT_NEW\%1" "TMP\%1"
El segundo archivo por lotes for /f %%f in ('dir /b *.tiff INPUT_NEW') do (
echo "Procesando %%f"
gd3trans655s %%f
gdwarp %%f
)
3) A continuación, debe ejecutar estos archivos por lotes en el shell OSGeo4W que se instala con QGIS. Es una especie de línea de comandos de Windows que le da acceso a la biblioteca gdal (necesaria para que podamos ejecutar los comandos gdal_translate y gdwarp).
Métodos para determinar las coordenadas de la imagen
Photoshop
ttp://graphicdesign.stackexchange.com/questions/22175/how-can-i-find-the-coordinates-of-a-pixel-in-photoshop-cs4
Irfanview
Basta con mantener pulsado el botón izquierdo del ratón para que aparezcan las coordenadas en la barra de título.
0 votos
No creo que se pueda reconocer un punto de marcador en el mapa. Una vez hice un registro por lotes de varias imágenes "similares" determinando un conjunto de coordenadas de base de la pantalla y utilizando desplazamientos de las mismas (desplazamientos de píxeles n, s, e o w). Los desplazamientos deben determinarse manualmente. Se ejecutó en el shell OSGeo4W sin embargo, así que si usted está abierto a una solución QGIS, voy a publicar una respuesta.
0 votos
Parece interesante. Aunque preferiría una solución de ArcGIS, también estoy abierto a QGIS y le agradecería su respuesta.