solo pantalla opaca funciona desactivar brillo bajar baja automatico iphone image-processing opencv brightness

iphone - pantalla - Determinación de la Luminancia/Brillo de la Imagen



el brillo de mi iphone no funciona (1)

Simplemente convierta su imagen al formato YUV y calcule el promedio del canal luma. La conversión de colores es una operación típica y cualquier marco de procesamiento de imágenes decente lo admite. Por ejemplo, OpenCV (dijiste OpenGL, pero eso realmente no tiene nada que ver con el procesamiento de imágenes, supongo que te referías a OpenCV) tiene CvtColor .

Si no tiene este marco de trabajo a mano pero tiene acceso a las intensidades de píxeles, puede usar la ecuación:

Y'' = 0.299*R + 0.587*G + 0.144*B

para obtener el canal de luma, y ​​luego calcular el promedio. R, G y B representan los canales rojo, verde y azul respectivamente.

EDITAR

Tenga en cuenta que es posible que su cámara compense las escenas brillantes / oscuras al modificar su apertura. Esto depende de la cámara, pero creo que la mayoría de las cámaras lo hacen; de lo contrario, tus imágenes pueden terminar saturadas (blanco puro) o negro claro, en cualquier caso, inútiles. Los ojos humanos en realidad hacen lo mismo .

Lo malo es que es difícil saber si te encuentras en un entorno oscuro o iluminado con solo mirar una imagen. En ese caso, es posible que deba ir más allá de la imagen y consultar la cámara. En teoría, puede hacer esto directamente a través de un controlador (poco probable) o tal vez mirando los metadatos de la imagen (por ejemplo, con JPEG, EXIF ).

Por último, no ha dicho qué es exactamente lo que quiere saber el brillo de. Si es la escena general, entonces el promedio será lo suficientemente bueno. Si se trata de una parte de la escena, es posible que tengas que hacer algo un poco más inteligente. Háganos saber si ese es el caso.

La aplicación de mi iPhone captura los datos en tiempo real de la cámara utilizando AVCaptureSession de AVFoundation. Puedo acceder a esos datos en su método de delegado en tiempo de ejecución y crear una imagen a partir de él. Puede ser CGImage, UIImage o simplemente datos brutos (CMSampleBufferRef).

Lo que trato de hacer es calcular la luminancia, el brillo de esos datos (imagen). O puede ser algún otro valor que pueda indicarme qué tan brillante es la luz de entrada.

¿Hay alguna forma estándar de obtener este valor? Tal vez usando OpenGL.

Gracias por adelantado.