Skip to Content

Códigos de barras + webcam + cualquier aplicacion

Este es un post atípico en este blog, pero al no haber encontrado ningún blog, foro o lista de correo que haya dado una solución al problema creo que merece la pena hacer publico este truco.
Como algunos sabréis existen los lectores de codigos de barras con conexion ps2 o Usb que emulan un teclado (dispositivo HID) y permiten escribir la lectura de los códigos en cualquier cuadro de texto donde este el cursor (si esa rallita negra que parpadea al escribir :P).
Lo que quizas alguno no sabeis es que los codigos de barra se pueden tambien leer desde una webcam, o una foto, o desde el scanner de casa , el sofware encargado de hacer esta magia es  zbar que podeis encontrar en los repositorios de Ubuntu/Debian
He aqui un tutorial para que tu webcam haga la misma función que los lectores incluyo un video demostracion  (de calidad pesima) al final del post.
Para instalar zbar en Ubuntu (o Debian)
#apt-get install zbar-tools
zbar Son un conjunto de librerias y utilidades para decodificar  imagenes de codigo de barras procedentes de cualquier fuente, tiene herramientas para integrarlo en vuestro proyectos en C, Python, Qt, Gtk,.... no voy a entrar mas en detalle por que no es el objetivo del alticulo, solo voy a centrarme un una utilidad que tambien estan incluidas en las zbar-tools, el programa zbarcam.

Como veis en la captura de pantalla ejecutado desde la consola, escribe por stdout todos los códigos de barras que va detectado la webcam, en tiempo real, y la verdad es que me ha sorprendido gratamente la rapidez y precision con que lo hace, probando con varios tamaños(algunos realmente pequeños) y diferentes tipos de codigo, EAN13, CODE128, I2/5 y en unas condiciones de luz bastante pobres.

Hasta aquí nada nuevo bajo el sol, pero como llevar ese código que tan amablemente nos ha escrito zbar en la consola a  por ejemplo el cuadro de texto de un buscador? o de nuestra aplicación de gestión? o de un simple bloc de notas sin tener que recurrir al copiar y pegar desde la consola?

Aqui es donde entra en accion Crikey! un pequeño programa escrito en C por Akkana Peck que precisamente hace los que buscamos, envía cadenas de texto como si fueran teclas pulsadas del teclado. Hay que descargarse el código fuente, instalar las dependencias y compilar , instrucciones para Debian/Ubuntu:
Ubuntu:
$ sudo apt-get install libx11-dev x11proto-xext-dev libxt-dev libxtst-dev
Debian:
$ su
# apt-get install libx11-dev x11proto-xext-dev libxt-dev libxtst-dev
# exit

Debian/Ubuntu:
$ wget http://www.shallowsky.com/software/crikey/crikey-0.8.3.tar.gz
$ tar -xzf crikey-0.8.3.tar.gz
$ cd crikey-0.8.3
$ make

Ya tenemos el ejecutable "crikey" si queremos utilizarlo sin tener que entrar en el directorio donde lo hemos compilado,
como root lo copiamos en /usr/local/bin, por ejemplo

# cp crikey /usr/local/bin

Y ya tenemos lo tenemos listo
en un terminal ejecutad
$ zbarcam --raw|crikey -i
Abrid cualquier aplicacion por ejemplo el gedit y enfocad a un codigo de barras con vuestra webcam, TADAAAAAA!!!!
y aqui un video demostración, perdonad por la oscuridad pero se me fundio la la lampara que suelo usar para grabar en video, pero lo bueno es que aun a con muy poca luz el sistema funciona :), os recomiendo ver el video a pantalla completa.

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Hey there, I'm having

Hey there, I'm having problems with your site in the Opera browser (the font is extremely tiny). I've tried increasing the font size using the style menu but that barely helped. Any tips on what I can do? (Oh, and if it helps, I'm using Windows Vista) - weight loss tips that work

Tio tambien me da el error

Tio tambien me da el error zbarcam
WARNING: no compatible input to output format
...trying again with output disabled
ERROR: zbar processor in zbar_processor_init():
unsupported request: no compatible image format

La web cam me funciona por que con cheess me funciona ¿que puede estar fallando?

ayuda

me encanto este post, ya que busco algo similar para realizar un trabajo de la universidad, si me puedes ayudar para hacer que funcione, más si es en mac te lo agradecería enormemente

Bárbara , lamento decirte que

Bárbara , lamento decirte que mi experiencia con Mac , se limita a mirarlos de lejos, si tiene arquitectura Intel siempre podrías utilizar un Live CD para llevar a cabo el tutoría.

De todas maneras envíame un mail explicando un poco mas el trabajo a realizar a ver si te puedo echar un cable (no prometo nada)

Me sale un error al ejecutar zbarcam

Hola

Pues primero que todo agradecerte por el tutorial, sigo todo al pie de lo que dices, todo se instala muy bien pero cuando ejecuto el ultimo comando

zbarcam --raw|crikey -i

Me sale el siguiente error, tengo la cámara conectada y la probé con cheese para verificar que la reconociera, le dejo el error

root@OPTIMUS:/usr/local/bin# zbarcam --raw|crikey -i
WARNING: no compatible input to output format
...trying again with output disabled
ERROR: zbar processor in zbar_processor_init():
unsupported request: no compatible image format

De Antemano Gracias por la ayuda prestada

Sigo todo lo que dices al pie

Sigo todo lo que dices al pie de la letra y sin embargo no puedo ejecutar el crikey (Uso el ubuntu 10.04 lucid lynx)

A qué se debe?

Me acabo de instalar 10.04,

Me acabo de instalar 10.04, cuando tenga un rato lo miro y te digo algo.
Te da algun error al ejecutarlo para que pueda darnos alguna pista?

Para nada, sólo dice que

Para nada, sólo dice que Crikey no lo encuentra, exactamente dice "Command not found"

Te dio algun error de

Te dio algun error de compilacion?, si quieres enviame un mail y hacemos una sesion de chat para ver donde esta el error.

Ningún error de compilación

Ningún error de compilación ni nada, es lo más extraño...
¿Por dónde te paso mi mail?

info@tuxbrain.com

Necesito ayuda!!

Saludos... me encanta este post, y mas aun porq estaba buscando algo asi ya que estoy desarrollando mi tesis y necesito leer codigos de barra... pero tengo un problemita... ya baje el zbarcam pero la version para windows, y tambien baje el crikey, pero como dices hay q compilarlo, y es ahi donde tengo problemas... no lo puedo compilar porq no tengo todas las librerias, ya q estas vienen en el Ubuntu creo q por defecto... consegui algunas librerias, pero aun asi me faltal y no se cuantas... queria saber si alguien lo tiene compilado ya para windows, o que mas puedo hacer... AYUDENME por favor ;)

No creo que el crikey te vaya

No creo que el crikey te vaya a funcionar en windows ya que esta pensado para enviar pulsaciones de teclas a entorno grafico X11 o X.org.
Tendrias que buscar el equivalente de crikey en windows, es decir enviar desde consola al escritorio.
Quizas exista alguna libreria(dll), ActiveX o función en Visual Basic que lo haga y te puedas hacer un programita pero y eso ya escapa a mis conocimientos. Suerte

Gracias por responde... Mmmm,

Gracias por responde... Mmmm, te entiendo... y tienes razon, lo mas seguro es que ni funcione... bueno y estuve buscando el equivalente en windows como dijistes... pero uy no esta facil :S no he conseguido nada... Mmm pero no hay problema yo puedo montar todo el sistema en Linux como es un sistema Web jejeje... de todos modos seguire buscando y si consigo algo te paso el dato, va? ;)

Va :)

Va :)

Códigos de barras + webcam + cualquier aplicacion

¡Fantástico!
Gracias por tu post.
Funciona genial
Un saludo

gracias por tu comentario, un

gracias por tu comentario, un placer que te haya sido de utilidad

Post new comment

The content of this field is kept private and will not be shown publicly.
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
8 + 9 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.
By submitting this form, you accept the Mollom privacy policy.