Más

¿Cómo crear un archivo .jgw a partir de una imagen jpg con encabezado exif?


Si tengo una imagen con estos metadatos en el encabezado exif:

El tamaño es 4000, 3000 El sistema de coordenadas es "Metadatos: EXIF_ApertureValue = (3.625) EXIF_ColorSpace = 1 EXIF_ComponentsConfiguration = 0x1 0x2 0x3 00 EXIF_CompressedBitsPerPixel = (5) EXIF_CustomRendered = 0 EXIF_DateTimeDime = 2015: 09: 28 : 09 15:27:28 EXIF_DateTimeOriginal = 2015: 09: 09 15:27:28 EXIF_DigitalZoomRatio = (1) EXIF_ExifVersion = 0230 EXIF_ExposureBiasValue = (0) EXIF_ExposureMode = 0 EXIF_ExposureTime = (0.0005ExposureTime = (0.0005) EXIF_lashFlash = (0.0005) EXIF_lashFlash = (3.5) EXIF_FocalLength = (4.5) EXIF_FocalPlaneResolutionUnit = 2 EXIF_FocalPlaneXResolution = (16393.4) ​​EXIF_FocalPlaneYResolution = (16393.4) ​​EXIF_GPSAltitude = (91.8) EXIFGPS_DPSAltitude = (91.8) EXIFGPS_DPSAltitude (EXIFGPS_GPSAltitude) (2015) N EXIF_GPSLongitude = (19) (48) (19.842) EXIF_GPSLongitudeRef = E EXIF_GPSMapDatum = WGS-84 EXIF_GPSStatus = A EXIF_GPSTimeStamp = (14) (27) (29) EXIF_GPSVersionID = 0x2 EXIF_IF_Index3 00 _Interoperability_Version = 0x30 0x31 0x30 0x30 EXIF_ISOSpeedRatings = 800 EXIF_Make = Canon EXIF_MakerNote = EXIF_MaxApertureValue = (3.625) EXIF_MeteringMode = 5 EXIF_Model = Canon PowerShot SX280 SA EXIF_Orientation = 1 EXIF_PixelXDimension = 4000 EXIF_PixelYDimension = 3000 EXIF_Related_Image_Length = 3000 EXIF_Related_Image_Width = 4000 EXIF_ResolutionUnit = 2 EXIF_SceneCaptureType = 0 EXIF_SensingMethod = 2 EXIF_ShutterSpeedValue = (10.9688) EXIF_UserComment = EXIF_WhiteBalance = 1 EXIF_XResolution = (180) EXIF_YCbCrPositioning = 2 EXIF_YResolution = (180) Metadatos de la estructura de la imagen: COMPRESSION = JPEG INTERLEAVE = YCORDE_CORDINADAS, superior izquierda: 0.0 (0.0, 3000.0) Superior derecha (4000.0, 0.0) Inferior derecha (4000.0, 3000.0) Centro (2000.0, 1500.0) Banda 1 Bloque = 4000x1 Tipo = Byte, ColorInterp = Rojo Vistas generales: 2000x1500, 1000x750, 500x375 Metadatos de estructura de imagen: COMPRESIÓN = JPEG Band 2 Block = 4000x1 Tipo = Byte, ColorInterp = Verde Descripciones generales: 2000x1500, 1000x750, 500x375 Estructura de la imagen Metadatos: COMPRESIÓN = JPEG Banda 3 Bloque = 4000x1 Tipo = Byte, ColorInterp = Azul Vistas generales: 2000x1500, 1000x750, 500x375 Estructura de la imagen Metadatos: COMPRESIÓN = JPEG

¿Cómo debo formatear el archivo .jgw apropiado para esta imagen?


No veo nada en ese EXIF ​​que posiblemente pueda proporcionar suficiente información para construir un archivo mundial.

Como señaló Zoltan en los comentarios, es posible que pueda averiguar el tamaño de píxel a partir de la geometría (dada la posición de la cámara en 3D y la altitud sobre el suelo), si está dispuesto a asumir que la cámara está mirando hacia abajo (normal a la tierra).

Sin embargo, a menos que tenga alguna información sobre qué dirección es el norte en la imagen, no podrá determinar la rotación de la imagen.

Si eso no es obvio, considere tomar dos imágenes desde la misma ubicación, ambas con la cámara mirando hacia abajo. Uno tiene el borde izquierdo de la cámara orientado hacia el norte, el otro tiene la cámara "girada" alrededor de un eje que es normal a la superficie de la tierra, de modo que el mismo borde izquierdo ahora está orientado hacia el sur.

Ambas imágenes se verán iguales, excepto que una estará "al revés". Tendrán datos EXIF ​​idénticos (excepto por alguna información de tiempo, todos los bits geoespaciales serán iguales).

Por lo tanto, necesita más información de la que se puede extraer de EXIF.


La especificación Exif proporciona las siguientes etiquetas

0x0010 16 GPSInfo Exif.GPSInfo.GPSImgDirectionRef Ascii Indica la referencia para dar la dirección de la imagen cuando se captura. "T" indica la dirección verdadera y "M" es la dirección magnética. 0x0011 17 GPSInfo Exif.GPSInfo.GPSImgDirection Rational Indica la dirección de la imagen cuando fue capturada. El rango de valores es de 0,00 a 359,99.

Si su software de drones puede completar eso en el momento en que se tomó la imagen, tendrá lo que necesita