Skip to content

Scanning barcodes with linux and a webcam

My Nokia phones can do it, so I thought there must be a way to do it on my laptop too. I wanted a way to scan both "traditional" barcodes and "two-dimensional" ones, like the QR-Codes. Here is my solution.

You'll need :

- a v4l-compatible webcam + mplayer compiled with v4l support (or any other scriptable way to grab frames from the webcam)

- a scriptable image viewer, I use feh on my laptop

- ZXing

Follow the instructions to build the ZXing javase component, then open three shell windows, and run:

shell1 (grab the webcam output as last.jpg +- every half second):
cd /tmp ; while [ 0 ] ; do mplayer tv:// -fps 2 -tv driver=v4l:width=640:height=480:device=/dev/video0 -vo jpeg:quality=95 -frames 2 ; mv 00000001.jpg last.jpg ; done

shell2 (view what you grabbed):
cd /tmp ; feh -R 1/2 last.jpg

shell3 (scan for barcodes):
while [ 0 ] ; do ( java -cp javase/javase.jar:core/core.jar com.google.zxing.client.j2se.CommandLineRunner /tmp/last.jpg | fgrep -v 'No barcode found') ; sleep 1 ; done


So no nice GUI, but it seems to work well.


Trackbacks

No Trackbacks

Comments

Display comments as Linear | Threaded

No comments

The author does not allow comments to this entry

Add Comment

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

Form options