2012-01-19 25 views
8

¿Alguien puede decir qué biblioteca es mejor en el reconocimiento de códigos QR pequeños en condiciones de poca luz? Plataforma es iPhone 4/iOS 5 Intenté ambos códigos de barras (zxing) y las aplicaciones ZBar y parece que zxing fue notablemente mejor en el reconocimiento de los códigos en condiciones "duras". Dicho esto, no fue una prueba de muestra muy grande.ZBar vs. zxing - Comparación de reconocimiento QR

Cualquier entrada en las capacidades reales de reconocimiento de imágenes (velocidad + calidad) de ambas bibliotecas sería útil.

TIA.

+0

Dudo que sea significativamente mejor en realidad, ya que los pequeños códigos QR son bastante fáciles de escanear en el esquema de las cosas. Sin embargo, zxing es especialmente bueno en los códigos QR, pero su puerto C++ es un poco rancio en comparación con la versión de Java. No tengo figuras duras de ninguna manera, pero escribí esta parte de zxing. –

Respuesta

4

En cuanto a mí ZXing es mejor. Los he usado tanto en el trabajo para la aplicación de iOS.

  1. Con ZBar tuve problemas con los QRCodes grandes.

  2. ZXing funciona bien en iPhone 4 y 3GS, pero Zbar funciona peor en 3GS, algunas veces simplemente no puede capturar el código.

Pero si necesita no sólo los códigos QR, que tienen que utilizar Zbar.

+0

Más que solo la decodificación de códigos QR ha sido portada de Java a C++ en zxing, aunque estoy de acuerdo con su último punto en que estos puertos son aún más irregulares y obsoletos en comparación con la versión de Java. –

+0

Debería echarle un vistazo a esto: ttp: //zbar.sourceforge.net/iphone/sdkdoc/optimizing.html, en cuanto al rendimiento, usar los valores predeterminados de ZBar creará problemas con los QRCodes v40 grandes; la solución es establecer la propiedad videoQuality a UIImagePickerControllerQualityTypeHigh en lugar del predeterminado 640x480 (encontrado en UIImagepickerController apple docs. Intenté ambos SDK hace aproximadamente un año, me gusta la aplicación de muestra ZXing que proporciona una idea de un analizador independiente, una lista de elementos de acción y la seguridad adicional de permitir el usuario para elegir realizar la acción o no. – Paulo

1

Deberías echar un vistazo a this link. En cuanto al rendimiento, el uso de los valores predeterminados de ZBar creará problemas con los QRCodes v40 grandes; la solución es establecer la propiedad videoQuality en UIImagePickerControllerQualityTypeHigh en lugar de los 640x480 predeterminados (documentos Apple). Según la documentación, el tamaño del módulo de código de barras debe tener al menos 3 píxeles de tamaño para escanear. Intenté ambos SDK hace aproximadamente un año, me gusta la aplicación de muestra ZXing, pero al final, antes del envío de la tienda de aplicaciones, descubrí que generaba muchos mensajes de advertencia que me resultaba difícil eliminar. Cambiar a ZBar me permitió limpiar el mensaje y agregar capacidad para escanear varios tipos de códigos de barras 1D a mi aplicación. Como se mencionó anteriormente, la configuración predeterminada no le brindará un rendimiento óptimo, pero necesita examinar las opciones, desactivar las que no necesita, y si no funciona, funcionará razonablemente bien.

Estoy muy contento con ZBar por el momento pero es probable que cambie si está disponible el soporte ZXing para otros tipos de códigos de barras particularmente DataMatrix, PDF417, Aztec y Maxi Code.

+0

Recientemente me comprometí con el soporte para la mayoría de los códigos 1D (excluyendo RSS y algunas de las extensiones UPC/EAN) y 2D (excluyendo PDF-417 que alguien más está haciendo) que son compatibles con Java (no incluye a Maxicodes). No estoy seguro acerca de las advertencias de compilación. Hay algunas en el widget ya que son anteriores a ARC. – smparkes

+0

Voy a pagar ZXing de vez en cuando gracias por t él info. – Paulo

+0

@Paulo ¿El 'zbar' admite' DataMatrix'? ¿Conoces ese símbolo para ser usado? –

0

He usado ambos. Debe usar ZXing si desea escanear códigos de matriz de datos. Pero si no necesita matriz de datos, usar ZBar es una manera rápida y fácil. Además, hay una API de escáner incorporada en iOS 7, AVCaptureMetaDataOutput que escanea códigos 1D y 2D excepto la matriz de datos. Preferiría AVCaptureMetaDataOutput por simplicidad. Aquí hay una guía para AVCaptureMetaDataOutput.

0

He encontrado que Zxing es muy bueno en los iPads y iPhones posteriores. La cámara del iPad 2 era muy lenta con Zxing, pero las cámaras posteriores eran mucho más rápidas y tenían mejor enfoque, lo que mejoraba considerablemente la velocidad.

Un "truco" que hice con Zxing en el iPad 2 es cambiar el rectángulo en el código. Bajaría progresivamente cada intento, así que en lugar de utilizar el rectángulo que se muestra, lo expandiría en pasos, por lo que verificaría 5 veces para cada exploración. Los resultados mejoraron mucho. En el iPad 3, etc., esto no era tan necesario, pero aún tengo el código allí y es rápido.

He usado tanto ZBar como ZXing en Windows usando escáneres (300 DPI), y encontré que los QRCodes densos eran un problema para ZXIng y tenía que incluir compatibilidad con ZBar. Implementar el soporte ZBar fue muy complicado y tuve que escribir mi propia API, si alguien está interesado.

Cuestiones relacionadas