Lector de código de barras

Tus preguntas. Algoritmos o Grupos de Comandos formando Programas Escripts.
Responder
Jonny
Profesional del Autoit
Mensajes: 1042
Registrado: 30 Jun 2008, 20:08

Lector de código de barras

Mensaje por Jonny »

¿sabéis si por el foro inglés hay algún ejemplo de como leer códigos de barras con la cam en principio (si usara un lector de código de barras además de la cam mucho mejor).

Por aquí no he visto nada.

Si no hay nada tampoco en el foro inglés ¿se os ocurre una forma de hacerlo, sería pasar lo que capture la cámara por un motor OCR igual que si quisiera obtener un texto normal?.

Encontré una librería llamada Asprise, que era un motor OCR, y que también leía códigos de barras, pero es de pago y me gustaría usar un soft gratuito.
Vaya, si hay forma de hacerlo cien por cien con AutoIt, mucho mejor :).

Salu2!
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Lector de código de barras

Mensaje por Ximorro »

Hum, pues he buscado "codebar", "bar code", "code reader" (aquí salían mogollón de cosas pero por probar) y nada.

Hombre, con AutoIt lo que puedes hacer es tomar una imagen del código, escaneado o por cámara y recorrerlo con PixelGetColor a ver cómo son las barras. Supongo que codifican datos en binario.

Antes de hacer el programa lo que tienes que hacer es saber cómo se codifican esos datos binarios, para poder interpretar las rayas. Veo un programa que los genera (no gratuito) que entiende estos tipos, así que parece que hay variedad:
Code 128, Code 128A, Code 128B, Code 128C, EAN 128, EAN 13, EAN 8, EAN 5, EAN 2, ISBN, ISSN, UPC A, UPC E, Code 39, Code 39, Codebar, Code 2 of 5, Interleaved2 of 5, POSTNet, Post 2/5, Code93, Plessey, MSI Plessey, PDF417, Code11, PLANET, 4State, ITF-14, EAN-14, DataMatrix, IATA, USPS Intelligent Mail

(¿Dónde está el iconito de "asombro"?)

Pues hala, ya puedes empezar a estudiar...

Tampoco veo nada gratuito, debe ser que como se trata de un tema muy comercial... pues se comercializa :-(
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
jamaro
Hacker del Foro
Mensajes: 253
Registrado: 03 Nov 2010, 23:04

Re: Lector de código de barras

Mensaje por jamaro »

Hace tiempo que estuve buscando algo similar, pero tampoco llegué a nada. La intención era hacer etiquetas de proyectos para pegarlas en carpetas. Como alternativas estaba el ya expandido código BiDi que se puede generar incluso desde Google. Luego estaba, el problema de leerlo con la cam del PC,...

Jonny te veo inquieto con multitud de proyectos en marcha :smt003 , aunque no escriba, voy leyendo casi todo lo que publicáis y atento a lo que explicáis por si lo puedo aplicar en algo que me sirva a mí.

Saludos.
Avatar de Usuario
chekok
Hacker del Foro
Mensajes: 111
Registrado: 16 Sep 2011, 11:50
Ubicación: Valencia / España
Contactar:

Re: Lector de código de barras

Mensaje por chekok »

La lectura de código de barras con una pistola lo que hace es simular una entrada por teclado de los dígitos que componen dicho código capturado. Para que tu aplicación recoja los códigos con una pistola lectora no necesita nada especial, un simple campo de texto ya vale, cuando leas con la pistola, el código numérico se cargará en dicho campo sin más, o en un bloc de notas, por ejemplo.

Lo complicado está en la interpretación del código si lo quieres capturar con una webcam, ya que tienes que realizar un reconocimiento de la imagen capturada, con un OCR por ejemplo, para lo cual debes tener instalas dichas fuentes en tu equipo, Code39, ean13, etc. Puedes buscar dichas fuentes (me refiero a fuentes de letras para windows) en la web.

En la instalación de TPV ITACTIL se incluye el code39.ttf, lo usamos para crear etiquetas con códigos de barras, por si te vale de ayuda.
La vida es larga y dura.
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Lector de código de barras

Mensaje por Chefito »

Como te han dicho hay muchas codificaciones para el código de barras. No recuerdo cual es la más usual. Busca en google que seguro que encuentras.
Como dice chekok, utilizando un lector es lo más facil. Si quieres que la cámara te reconozca el código, eso te va a ser más dificil. Aunque se me ocurre como hacerlo. No se si serviría, pero puede que sí.
Yo lo intentaría de esta forma: pondría el código de barras delante de la cámara lo más recto posible para poder hacerle una foto. Luego trabajaría sobre esa imagen. Intentaría leer simplemente una fila de píxeles (o alguna más, pero pocas) en medio del código de barras. Detectaría los pixeles que cambian de color (negro) y cuantos van seguidos. El código de barras tendrá unas 3 barras de distinto grosor? Pues sabiendo esto ya podemos intentar averiguar el código.

Pienso que los lasers de los lectores tienen que hacer algo parecido. Por supuesto este algoritmo tiene que ser complicado, pero supongo que con esfuerzo se podría hacer algo decente.

Por cierto, aquí tienes una fuente. No se que codificación utilizará:http://www.emesn.com/autoitforum/viewto ... rras#p9765

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Jonny
Profesional del Autoit
Mensajes: 1042
Registrado: 30 Jun 2008, 20:08

Re: Lector de código de barras

Mensaje por Jonny »

daba por hecho tener que estudiar :), ¡pero no tanto! :P.

La librería que comentaba (Asprise) por ejemplo, al hacer OCR en un código de barras devolvía algo como [ab125332]. Vamos, números, o números y letras, ahora no recuerdo...

Eso lo hacía analizando una imagen donde había un código de barras, así que tiene que ser algo como lo que decís. Si tirando de pixels basta para hacer esto puedo darme por satisfecho :).

Por cierto...

"Poner el código delante de la cámara lo más recto posible"...

¿como harán esos programas que ponen la imagen del derecho?.

Eso lo he visto sobre todo en programas OCR, en teléfonos móviles.
¿Será muy complicado hacer eso con AutoIt?.

Salu2!
UbuntuX
Mensajes: 1
Registrado: 08 Nov 2011, 20:29

Re: Lector de código de barras

Mensaje por UbuntuX »

Vamos a ver.

¿Leer códigos de barras mediante una webcam?

Sí, se puede. Lo he hecho. Desde Ubuntu.

¿Pruebas?

Aquí les dejo un vídeo en el que se ve cómo leo código de barras, con una webcam barata, conectada por USB.
http://www.youtube.com/watch?v=IPe_9bhPtT4

¿Lo quieres hacer desde Windows? Lo siento. No uso Windows. Ni idea...

Aquel que use Ubuntu o Debian, primero, que lea el siguiente artículo:
http://www.tuxbrain.com/en/codigos-de-b ... o-de-texto
Así fue como yo aprendí...............

Si después de leer el artículo, no lo consigues, escríbeme a [email protected], y veré si puedo ayudarte.
Si usas Windows, no me escribas. No tengo, ni idea, de cómo se hace en Windows. No uso Windows.

Saludos.
Última edición por UbuntuX el 08 Nov 2011, 22:53, editado 1 vez en total.
jamaro
Hacker del Foro
Mensajes: 253
Registrado: 03 Nov 2010, 23:04

Re: Lector de código de barras

Mensaje por jamaro »

¡Yo quiero uno..... en Windows!
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Lector de código de barras

Mensaje por Chefito »

UbuntuX, gracias por tu colaboración pero creo que te has equivocado. AutoIt es un lenguaje script solamente para Windows. Asi que, que digas que se puede hacer en linux nos sirve de poco :smt009 .
También decirte que es un foro para programadores. Lo que nos muestras es la instalación de una aplicación de un tercero (no la has hecho tú) y como se maneja.

Pero te vuelvo a dar las gracias porque esta librería también está para windows :smt002 . Lo pone en su página: http://zbar.sourceforge.net/download.html
También nos muestra una guía de instalación: http://sourceforge.net/apps/mediawiki/z ... tion_Guide

Parece que habla de unas apis. Sería cuestión de investigar.
También he visto que se puede manejar por comandos de consola. Puede que esta opción sea más facil que por apis :smt001 .

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2085
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: Lector de código de barras

Mensaje por BasicOs »

Puntualizar sobre linux, Autoit funciona perfectamente en linux para bastantes comandos apoyandose en WINE , (según las experiencias comentadas en los posts de usuarios del foro inglés).

Lo que no esta no es la manera usual de trabajarlo, ya que casi todos tenemos el chip de usarlo en Windows.

Puede que los ficheros de texto que genere el programa lector de código de barras,puedan usarse para que desde un bucle (while wend), leyendo continuamente este fichero desde Linux, y que lea el código de barras al detectar un cambio en la lectura del fichero y de esta manera use la lectura del código de barras. Lo anterior hay que experimentarlo en su caso.

Como dice Chefito, si ya hay una librería de windows también, pues es más directo usar un windows en este caso que el Linux, que es algo más para experimentar y probar.

Salu22:)
Enlaces:
Creditos a JamesBrooks:
Recently there has been an increase of questions regarding running AutoIt 3 scripts under Linux, so I thought I'd try and clear a few things up.

Is it possible to run AutoIt scripts under Linux?
Yes it is, although not advised as the outcome cannot be guaranteed to act the same as first programmed under the native OS; Windows.

How can I get my scripts running under my favourite distro?
The most common way is to use Wine. This Linux application emulates some of the Windows architecture for running EXE code. The second way is to make use of a Wine included OS such as Xandros or Lindows. I know they're both old but it's all I could think of, off the top of my head.

Why does AutoIt want to initialize a sound card /dev/snd/seq? This question is specific to a problem raised by a question in this forum here.
Like I said before, AutoIt is not designed to run under an emulated Windows environment, shit like this is possible. Next you'll be asking why it's trying to access your portable USB powered microwave.
http://www.autoitscript.com/forum/topic ... ntry923002

http://www.autoitscript.com/forum/topic ... ntry935376

http://www.emesn.com/autoitforum/viewto ... 284&p=9363
http://www.emesn.com/autoitforum/viewto ... 275&p=9089

PD:
Función _IsWine()
Una función que detecta si el script de Autoit está corriendo bajo Linux (Wine), lo que hace es chequear el valor de algunas macro-variables, y rutas del registro:

Código: Seleccionar todo

;
; AutoIt Version:  3.0
; Language:   English
; Platfrom:   Win9x/NT
; Author:   Robert C. Maehl ([email protected])
;
; Function:
;  Checks to see if the script is running
;  under WINE.
;
; Return Value:
; Returns True/False
Func _IsWine()
; Clear Return Value
$Return = False
; Check for Desktop Refresh, 100% accurate.
If @DesktopRefresh = 0 Then $Return = True
; Check for GeckoPath
If RegRead("HKEY_USERS\S-1-5-4\Software\Wine\MSHTML\1.0.0", "GeckoPath") = "C:\windows\system32\gecko\1.0.0\wine_gecko" Then $Return = True
; Check for IE6
If RegRead("HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Version Vector", "IE") = "6.000" Then $Return = True
; Return Return Value
Return $Return
EndFunc
http://www.autoitscript.com/forum/topic ... ntry930846
Avatar de Usuario
chekok
Hacker del Foro
Mensajes: 111
Registrado: 16 Sep 2011, 11:50
Ubicación: Valencia / España
Contactar:

Re: Lector de código de barras

Mensaje por chekok »

Creo que el comentario de UbuntuX esta fuera de lugar e intenta entrar en la famosa guerra linuxera contra windows. Para emprezar autoit es un lenguaje para windows aunque "funcione" en linux bajo wine, linux es un sistema con una filosofia y unas caracteristicas determinadas y windows es otro tipo de sistema, propietario, de pago y mucho mas sencillo que linux de cara al usuario final. Se muy bien lo que digo, trabajo diariamente con linux, concretamente configurando centralitas telefonicas asterix, que seguro muchos frikis linuxeros no saben ni que co... es eso. cada sistema es para lo que es, windows es bueno y simple para un usuario sin conocimientos y linux es potente, seguro y estable para trabajos tales como servidores, centralitas, etc. El problema es que un friki recien licenciado se cree un superguru de linux porque ha compilado, configurado y ejecutado una aplicacion en linux mediante linea de comandos (mas que nada porque seguro que para esa apli no ha otro metodo mas que make, make install, etc.) cuando en windows es tan simple como hacer 3 clics en siguiente, siguiente, siguiente. La verdadera sabiduria esta en la productividad, sacar rendimiento a nuestro sistema y no perder el tiempo en instalar un programa que hasta un mono sabe hacerlo. lo triste es que el sistema de instalacion en windows tambien funciona y es valido en linux, pero por lo visto los programadores de linux ni en eso se esmeran, ese es el gran problema por el que linux no se ha comido ha windows a nivel de usuario, la simplicidad, por que al friki le gusta frikear. Con esto no quiero ofender a nadie, soy usuario de windows y defensor de su filosofia, asi como administrador de sistemas linux y tambien defendere hasta el final dicha plataforma, pero que quede claro que cada cosa esta enfoncada a un publico muy distinto, aunque ubuntu esta esforzandose por cambiar esto cada dia, todavia queda camino por andar. Ademas aun nos queda ver que pasa con WooS.

UbuntuX, creo que te has equivocado de foro.
La vida es larga y dura.
Avatar de Usuario
arkcrew
Profesional del Autoit
Mensajes: 506
Registrado: 28 Sep 2009, 19:17
Ubicación: Granada, España
Contactar:

Re: Lector de código de barras

Mensaje por arkcrew »

Coincido con Chekok , aunque en realidad la respuesta de UbuntuX en parte es válida, la información que ha proporcionaod es válida para windows también y eso es de agradecer, aunque sea otro sistema lo importante es dar soluciones con la mejor intención posible, vale que este sea un foro enfocado a aplicaciones que funcionan bajo windows, ese es un fallo de Ubuntux, aqui se programa para windows, lo cual no indica que no necesariamente dejen de ser funcioanles en linux, yo con wine y con el cedega he podido utilizar diversas aplicaciones e incluso juegos, pero lo dicho, es un foro par windows.

Igualmente gracias a todos por las ideas que aportais.

Saludos
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Lector de código de barras

Mensaje por Ximorro »

Sí, pero es que este foro ni siquiera es para Windows en general, es para AutoIt en particular. Como nota al margen está muy bien indicar una aplicación que hace lo que quieres, pero aunque sea en Windows no ayuda al que está intentando hacer el programa. Otra cosa es que se indiquen librerías que le ayuden a desarrollar, pero dar una aplicación ya hecha no ayuda a hacer otra, aunque por supuesto puede dar ideas de funcionalidad, para la interfaz, etc.
Desde ese punto de vista da igual que se muestre una aplicación en Windows o Linux, las ideas las puede tomar igual el desarrollador de ambas, pues de todas maneras no va a acceder al código. Y por eso mismo ambas le mostrarán lo mismo sobre cómo se programa: nada.

Y las discusiones Linux/Windows están muy bien si no se salen de madre, pero si queréis seguir con ello sugiero que os paséis al subforo de Chat y no secuestremos el hilo al compañero.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Responder