2012-04-09 4 views

Respuesta

1

El soporte de DM en el puerto C++ de ZXing está actualizado con Java (no es cierto para muchos de los códigos 1D). No está habilitado por defecto en las aplicaciones de prueba, pero es fácil de habilitar (y will be enabled by default in the future.)

No tengo ninguna experiencia personal con el uso del decodificador DM, pero está incluido en las suites de prueba y creo que está disponible en Aplicación Android.

0

Actualmente estoy tratando de utilizar libdmtx http://www.libdmtx.org/

Tiene soporte para todo tipo de interfaces. Parece que tiene buenas críticas aquí y en otros lugares ...

(Pero estoy en busca de ayuda en la construcción de las utilidades :-)

0

Dado que hay una respuesta "real" se envió a mi pregunta, al menos hay una respuesta de alguien con experiencia con una de estas bibliotecas para leer 2D códigos matriciales, pensé que publicaré mi propia experiencia.

Intenté ambas bibliotecas y ambas pude leer códigos, pero el rendimiento no fue lo suficientemente bueno para mi situación. En mi situación, los códigos con frecuencia no son "perfectos", pueden faltar puntos, tener diferentes tamaños y el código puede estar un poco sesgado. Ambas bibliotecas tuvieron problemas para leer estos códigos.

Al final utilicé una biblioteca comercial (no gratuita), Sapera. Sapera pudo leer los códigos no perfectos mucho mejor. Usé Sapera porque fue usado en mi compañía en el pasado, pero es muy posible que otras bibliotecas comerciales de visión artificial (como Halcon) también funcionen bien.

1

Aquí hay una respuesta real. He usado libdmtx y libzxing con éxito. Libdmtx fue más sencillo, porque está limitado a matrices de datos. En mi experiencia, los resultados fueron, curiosamente, no siempre deterministas. Libzxing también está bien, pero cuando realizas una producción real (millones o lecturas) se bloqueará a veces debido a que la gestión de la memoria no es perfecta. Es realmente bueno, pero no perfecto para un entorno de producción real.

Tanto las bibliotecas, libzxing y libdmtx requieren que usted tenga el deadcenter de Datamatrix de la imagen y bastante grande. Eso significa que debe hacer la pre-localización usted mismo. Me las arreglé para hacer esto simplemente usando rutinas de imágenes y buscando la forma de 'L' y luego un poco de inteligencia con un cuadro delimitador cuadrado de área mínima, etc. Luego, la decodificación y el paso de corrección de error usé desde libzxing, que todavía no es perfecto

Si va por un entorno de producción, o bien haga todo usted mismo dentro de sus propios límites, y si no se siente cómodo haciendo eso, use un paquete pagado, que a su vez nunca es perfecto para su aplicación y cuesta dinero.

El mejor puerto de libzxing-cpp es el del usuario glassenchidna. https://github.com/glassechidna/zxing-cpp

Cuestiones relacionadas