ver pesa fotos datos cuanto como ios iphone objective-c cocos2d-iphone camera

ios - fotos - como ver cuanto pesa un video en iphone



¿Cómo obtener la distancia del objeto desde la cámara del iPhone usando la imagen de metadatos Exif? (4)

Editar : lo siento por la edición tardía, sin dos parámetros no puede calcularlo, por lo que primero debe llenar la altura de la cámara desde el suelo.

¡Compruebo una serie de soluciones pero ninguna de ellas útil!

Sé que Distancia de trabajo = (Altura del sensor + Altura del sujeto) * Distancia focal / Altura del sensor

y

distance to object (mm) = focal length (mm) * real height of the object (mm) * image height (pixels) ---------------------------------------------------------------- object height (pixels) * sensor height (mm)

Y quiero distanciarme de esto:

Formación de imágenes por lentes y el ojo

Hola obtengo la siguiente información usando la imagen Exif ALAssetsLibrary

Y obtuve los siguientes metadatos:

Save image metadata. { DPIHeight = 72; DPIWidth = 72; FaceRegions = { Regions = { HeightAppliedTo = 2448; RegionList = ( { AngleInfoRoll = 270; AngleInfoYaw = 0; ConfidenceLevel = 376; FaceID = 1; Height = "0.1413399"; Timestamp = 5996166864910; Type = Face; Width = "0.1060049"; X = "0.3560049"; Y = "0.4746732"; } ); WidthAppliedTo = 3264; }; }; Orientation = 6; "{Exif}" = { ApertureValue = "2.526068811667587"; BrightnessValue = "1.291629806962232"; ColorSpace = 1; DateTimeDigitized = "2014:03:25 15:43:36"; DateTimeOriginal = "2014:03:25 15:43:36"; ExposureMode = 0; ExposureProgram = 2; ExposureTime = "0.05"; FNumber = "2.4"; Flash = 24; FocalLenIn35mmFilm = 33; FocalLength = "4.12"; ISOSpeedRatings = ( 160 ); LensMake = Apple; LensModel = "iPhone 5 back camera 4.12mm f/2.4"; LensSpecification = ( "4.12", "4.12", "2.4", "2.4" ); MeteringMode = 5; PixelXDimension = 3264; PixelYDimension = 2448; SceneType = 1; SensingMethod = 2; ShutterSpeedValue = "4.321956949076723"; SubjectArea = ( 1631, 1223, 1795, 1077 ); SubsecTimeDigitized = 261; SubsecTimeOriginal = 261; UserComment = hoge; WhiteBalance = 0; }; "{GPS}" = { Altitude = "196.008"; AltitudeRef = 0; DateStamp = "2014:03:25"; Latitude = "28.61772"; LatitudeRef = N; Longitude = "77.38891"; LongitudeRef = E; TimeStamp = "10:13:37.439000"; }; "{MakerApple}" = { 1 = 0; 3 = { epoch = 0; flags = 1; timescale = 1000000000; value = 249840592070541; }; 4 = 0; 5 = 179; 6 = 139; 7 = 1; }; "{TIFF}" = { DateTime = "2014:03:25 15:43:36"; Make = Apple; Model = "iPhone 5"; Software = "7.0.6"; XResolution = 72; YResolution = 72; }; }

Necesito calcular la distancia del objeto de la cámara, usando los detalles anteriores; usando iphone4s, iphone5 o iphone5s. ¿Es posible?

Necesidad de modificar la fórmula utilizada por esta aplicación para cualquier idea:

Necesita saber cualquier método

http://www.youtube.com/watch?v=eCStIagorx8

¿Cómo funciona esta aplicación? Toda la ayuda es bienvenida


@iphonemaclover. Como mucha gente ha señalado, no hay información suficiente para calcular esto usando puramente trigonometría. Sin embargo, dependiendo de qué tan preciso debe ser, o qué es lo que está tratando de medir y otros datos que puede esperar recuperar de un iphone y / o está dispuesto a hacer algunas suposiciones, es posible hacer algunos incursiones.

a) +1 a Martin R, si supone una tierra plana, la altura del teléfono (que según la aplicación que citó) un usuario podría actualizar para fines de calibración, puede recuperar información de tono y saber dónde hay un punto en el suelo en la base de su objeto es entonces esto es simple trigonometría. Una vez que haya una estimación de la distancia y suponiendo que lo que está midiendo está cerca de la vertical (o se encuentra en un ángulo conocido), entonces también se puede calcular su altura.

b) Su archivo exif contiene información de la región de la cara. Si le interesan las personas y está feliz de suponer que es un adulto, podría usar una suposición promedio de tamaño de la cabeza para estimar la distancia utilizando el método que ya ha descrito.

c) Si puede recuperar una serie de imágenes y posiciones de la cámara y las posiciones de la cámara / objeto varían, entonces creo que la información en 3D puede recuperarse utilizando la geometría proyectiva.


No es posible distanciarse mientras se varía la distancia suelo-móvil dinámicamente de cada persona. El usuario manual tiene que configurar la altura del móvil cada vez que se calcula.


Sé que esta es una vieja pregunta, pero algo me hizo pensar si era posible usar el sensor de enfoque de un iPhone para medir la distancia a un objeto, y esto surgió en mis búsquedas.

Creo que en la pregunta original de @ iphonemaclover, la "altura del sensor" no se refiere a la altura de la cámara sobre el suelo, sino a la altura física del sensor de la cámara dentro del teléfono. Después de todo, si tuviera el teléfono en un brazo giratorio girando alrededor del sujeto, la distancia al sujeto podría permanecer constante mientras cambiaba la posición vertical del teléfono. Es el tamaño del sensor y la distancia focal lo que determina lo que está en su marco.

Con eso en mente, hice algunos experimentos rápidos con mi teléfono que parecían confirmar esto (aunque, admitiré que no realicé ninguna medida real más allá de las estimaciones del globo ocular y una regla de escritorio.)

Estaba usando un iPhone 5, y con un poco de Google, podemos aprender algunas piezas clave de información sobre su sensor de cámara:

  • resolución de píxel: 3264 x 2448
  • distancia focal: 4.10mm
  • tamaño del sensor: 4.54 x 3.42 mm

Por lo tanto, la primera fórmula anterior para "Distancia de trabajo" puede indicarnos la distancia a la que un sujeto de un tamaño determinado llenará el marco del sensor. Con la cámara en orientación horizontal y un sujeto de 2 m de altura (2000 mm), obtenemos:

(3.42 + 2000) * 4.10 -------------------- = 2401.76mm, or about 2.4m 3.42

Por lo tanto, si se encuentra a 2,4 m de distancia de una persona de 2 m de altura, deben llenar el marco en orientación horizontal. Para retratos, necesitarás acercarte a aproximadamente 1,8 m de distancia.

Eso está bien y maravilloso para llenar el marco. Pero queremos calcular distancias arbitrarias, al ver cuánto del marco ocupa nuestro tema. Para eso es la segunda fórmula. Volvamos a utilizar nuestro sujeto de 2 m de altura y conectemos los números. Para este experimento, digamos que hemos examinado nuestra imagen, y el sujeto de la fotografía ocupará 1800 píxeles, verticalmente. Conectándonos a la segunda fórmula de distancia, obtenemos:

4.10 * 2000 * 2448 ------------------ = 3260.82mm, or ~ 3.26m 1800 * 3.42

Y si el sujeto tomó los mismos 1800 píxeles verticales en modo vertical, entonces podríamos adivinar que el fotógrafo estaba a unos 3,28 m de distancia.

Todo esto supone que las fórmulas dadas arriba son correctas. Y de nuevo, solo hice intentos rudimentarios para verificar las mediciones de "fotograma completo" (una vez con un sujeto de unos 28 cm de altura, luego con un sujeto de 1,7 m de altura). Pero mis cálculos del globo ocular parecían razonablemente cercanos a lo que la fórmula predijo.


Si se pregunta cómo encontrar la distancia dada la altura del teléfono / tableta y la inclinación hacia arriba o hacia abajo, simplemente use el atan del ángulo hacia abajo (0 si apunta hacia adelante, -30 si es -30 grados hacia abajo) multiplicado por la altura . El único problema es que no sabemos la altura del teléfono sobre la tierra.

Sé que quieres usar el foco de la cámara, pero eso es improbable. Mencionaste una aplicación de Android, mientras que si notas que esa aplicación requiere que ingreses la altura del teléfono. Podría intentar usar la altitud del GPS menos lo que dice un mapa topográfico, pero eso es increíblemente inexacto. O tal vez podrías tomar una foto desde un lugar, luego moverte alrededor del objetivo 45 grados más o menos, pero no todos tienen una brújula para medir eso o tienen la habilidad de correr círculos alrededor del objetivo. ¿Cómo se movería 45 grados alrededor de un objeto frente a usted mientras está parado en un puente? Incluso si trató de usar el enfoque de la cámara, eso se actualiza automáticamente y no sé nada sobre el uso de una variable para encontrar el enfoque de la cámara. https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/04_MediaCapture.html muestra cómo establecer el modo de enfoque, pero no encuentro nada sobre cómo configurar un foco personalizado o ver qué la cámara está enfocada. Si quieres tomar una foto y hacer algún tipo de análisis personalizado píxel por píxel para ver cómo está enfocado, por supuesto, adelante. Tal vez un iPhone roto en la cárcel puede acceder al enfoque de la cámara, pero supongo que su público objetivo es más que el grupo selecto que ha pasado por el proceso de la cárcel.

Creo que la manera más fácil de encontrar la altura es hacer que apunten con el teléfono hacia abajo. Luego, puede preguntarles el tamaño del zapato y la marca para estimar el ancho de su zapato, o simplemente hacer una adivinanza plana. Solo pídales que señalen el costado de su zapato, tal vez mostrando un punto rojo en el centro de la pantalla para que sepan exactamente hacia dónde apuntan. Luego pídales que señalen el otro y luego, una vez que haya capturado ambos bordes de su zapato, use el ancho estimado en pulgadas de su zapato multiplicado por el bronceado de la diferencia de ángulo de un borde al otro (si es 170 grados) cuando apunta a un borde y 190 cuando en el otro usa el bronceado de 20). Eso debería darte la altura en pulgadas del suelo.

s = shoe width; ao = angle when pointed at left shoe edge (y-axis)(radians); at = angle when pointed at right shoe edge (y-axis)(radians); a = angle of device when pointed at the point on the ground (x-axis)(radians); d = distance; d = atan(a) * tan(at - ao) * s;