2010-09-09 23 views
5

La aplicación que estoy usando actualmente tiene una funcionalidad principal para escanear códigos QR/Bar continuamente usando la biblioteca Zxing (http://code.google.com/p/zxing/). Para la captura continua de cuadros utilicé para inicializar AVCaptureSession y AVCaptureVideoOutput, AVCaptureVideoPreviewLayer descritos en la manzana Q & A http://developer.apple.com/iphone/library/qa/qa2010/qa1702.html.La capa de vista previa de la cámara AV Foundation se acerca, cómo alejarse?

Mi problema es que cuando solía ejecutar la vista previa de la cámara, la imagen que puedo ver a través del dispositivo de video es mucho más grande (1.5x) que la imagen que podemos ver a través de la cámara del iPhone. Nuestro cliente necesita mantener el iPhone a una distancia de aproximadamente 5 cm del código de barras cuando está escaneando, pero si mantiene el iPhone en ese parámetro, el código QR completo no estará visible y la decodificación falla. ¿Por qué la cámara de video en iPhone 4 amplía la imagen (al ver a través de AVCaptureVideoPreviewLayer)?

Respuesta

4

Estoy respondiendo mi propia pregunta nuevamente. Esto no fue respondido incluso en el foro de Apple Dev, por lo tanto, presenté directamente una solicitud de soporte técnico de Apple y me han respondido que este es un problema conocido y se solucionará y lanzará con una versión futura. Entonces no hay nada que podamos hacer más que esperar y ver.

+0

¿Alguna suerte en esto? – user281300

5

Verá el mismo comportamiento con la aplicación incorporada de la cámara del iPhone. Cambie entre los modos de captura de imágenes fijas y de video y notará que el nivel de zoom predeterminado cambia. Usted ve una vista más amplia en modo fijo, mientras que el modo de video se acerca un poco.

Supongo que la captura de video continua necesita usar un área más pequeña del sensor de la cámara para funcionar de manera óptima. Si utilizó todo el sensor, tal vez el sistema no podría soportar 30 fps. Usar un área más pequeña del sensor da el efecto de "acercar" a la escena.

13

Esta es una función del preajuste de video AVCaptureSession, accesible mediante la propiedad .sessionPreset. Por ejemplo, después de configurar el captureSession, pero antes de iniciarlo, deberá añadir

captureSession.sessionPreset = AVCaptureSessionPresetPhoto; 

Consulte la documentación aquí:

iOS Reference Document

El preestablecido por defecto para vídeo es 1280x720 (creo) que es una resolución más baja que el máximo soportado por la cámara. Al usar el ajuste preestablecido "Foto", obtendrá los datos de cámara sin procesar.

+0

Saludos, originalmente estaba configurando el preajuste de sesión en el bloque cuando se estaba tomando una captura de imagen. Así que la primera imagen siempre fue más grande. –

Cuestiones relacionadas