Neste breve documento veremos como efetuar a leitura de código de barras utilizando uma webcam compatível com a API V4L1 ou V4L2. Além de mostrar a força do software livre, este recurso proporciona inúmeras aplicabilidades.
Jogo rápido: Download, compilação, instalação e execução
Sem muito BLA, BLA, BLA... o download pode ser efetuado no site do Zebra Barcode Reader . Utilize o comando "tar -zxvf" para extrair o pacote. Depois os comandos "configure", "make" e "make install" conforme o exemplo a seguir.
Agora utilize a imagem abaixo para testar a decodificação a partir de uma imagem armazenada no disco. O programa Kbarcode foi utilizado para criar todas as imagens com os códigos de barras para testes.
A decodificação da imagem deve ser executada com o comando zebraimg, conforme o exemplo abaixo:
zebraimg zebra04.jpg
EAN-8:01234565
scanned 1 barcode symbols from 1 images in 0.06 second
Para ler código de barras de imagens ao vivo, basta plugar a sua webcam e executar o comando zebracam.
Abaixo um vídeo demonstrando a funcionalidade a eficiência do projeto. Como sempre optei em elaborar um texto objetivo e prático. Maiores detalhes o leitor pode obter na página do próprio projeto.
Acredito que este projeto pode abrir portas para outros projetos, como por exemplo um relógio de ponto onde a face e o código é capturado (assim inibindo a fraude de troca de cartões entre funcionários). Ressalto que não estou falando de biometria e sim de um sistema que obrigatoriamente armazena o rosto do usuário que efetuou a leitura do cartão.
[4] Comentário enviado por RCoimbra em 06/10/2008 - 17:16h
Queeeeeeeeeeeeeee isso!!!!!!!!! Artigo show de bola, como disse o Fábio não vou mais precisar digitar código de barras pra pagar contas pelo internet banking!!! kkkkkkk
Sem contar que os artigos do cabelo são sempre diretos!!
[5] Comentário enviado por tenchi em 06/10/2008 - 19:25h
Achei muito interessante, mas não consegui fazer funcionar com minha webcam. Ela usa v4l1. Eis aqui a saída do comando zebracam em modo verbose:
_zebra_video_open: opened camera device /dev/video0 (fd=5)
WARNING: zebra video in _zebra_v4l2_probe():
unsupported request: video4linux version 2 not supported (VIDIOC_QUERYCAP)
_zebra_v4l1_probe: Flexcam 100 Camera (CAPTURE) (160 x 120) - (352 x 288)
v4l1_init_window: current window: 352 x 288 @(0, 0)
v4l1_probe_formats: current format: BGR3(33524742) depth=24 palette=4
v4l1_set_format: set new format: BGR3(33524742) depth=24 palette=4 size=0x4a400
v4l1_probe_iomode: using 2 images in MMAP mode
WARNING: zebra video in zebra_video_get_fd():
unsupported request: v4l1 API does not support polling
_zebra_window_probe_xv: XVideo extension version 2.2
xv_probe_port: probing port 158 with 1 encodings:
xv_probe_port: max XV_IMAGE size 2046x2046
xv_probe_port: 4 image formats
xv_probe_port: probing port 159 with 1 encodings:
xv_probe_port: max XV_IMAGE size 2046x2046
xv_probe_port: 5 image formats
v4l1_set_format: set new format: YU12(32315559) depth=12 palette=15 size=0x25200
v4l1_mmap_buffers: mapping 2 buffers size=0x258010
WARNING: zebra video in zebra_video_get_fd():
unsupported request: v4l1 API does not support polling
WARNING: zebra processor in x_handle_event():
output window is closed: user closed display window
WARNING: zebra processor in zebra_processor_user_wait():
output window is closed: display window not available for input
_zebra_video_open: closed camera fd=5
E, mais uma vez, sensacional este Cabelo. Descobre cada uma... Este programa é show. Tô pensando em trabsformar meu computador num caixa de super-mercado. Beep! Beep!
[7] Comentário enviado por arkanjo em 07/10/2008 - 20:51h
achei fantastico ... mas isso é pra fazer programas né ??
não tem algo mais pra usuario final ??
pensei em algo assim.
vc abre o programa depois seleciona o campo a ser preenchido com a leitura do codigo de barras, aperta algum botão e mostra a fatura pra camera, ela le e coloca no campo selecionado anteriormente ..
Tipo os leitores de fatura de 100 pila que tem por aí, mas melhor, pq qs todos tem uma camera hoje em dia, ja gastar com um leitor especifico, só quem paga muita conta mesmo ...
Seria fantastico, invez de passar um tempo digitando e errando numeros nos sites de bancos, todo 5° dia util, simplesmente acessar o site, selecionar a opção de pagamento de boleto, marco onde vai o codigo da fatura, aperto algum botão e aproximo a fatura da camera :D
Se ja não tiver, alguem faça aí e coloque no sourceforge o projeto, que acho que faz sucesso :D
[8] Comentário enviado por EDU4RDO_ em 08/10/2008 - 08:32h
Não estou conseguindo instalar. Quando eu dou o ./configure apresenta o seguinte erro:
checking for MAGICK... configure: error: Package requirements (ImageMagick++ >= 6.2.6) were not met:
No package 'ImageMagick++' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables MAGICK_CFLAGS
and MAGICK_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
Eu já instalei o imagemagick e também outros pacotes relacionados a ele, mas o problema continua.
Estou usando Ubuntu, alguem sabe dizer qual é a Lib q realmente esta faltando ou qual é o problema?
[9] Comentário enviado por maphdelic em 08/10/2008 - 10:09h
Olá, estou com o mesmo problema do colega acima..
"checking for MAGICK... configure: error: Package requirements (ImageMagick++ >= 6.2.6) were not met"
Também uso Ubuntu (hardy). Já instalei todos os pacotes relacionados que encontrei... imagemagick, libgraphicsmagick++1, libmagick++10, graphicsmagick, graphicsmagick-imagemagick-compat, python-pythonmagick, pfstools... só para citar alguns. Fora o que o auto-apt instalou.
Estou ancioso para testar. Quem tiver uma idéia, posta ai!
[11] Comentário enviado por Pianista em 08/10/2008 - 17:54h
caramba, como é que pode, meu irmão tu é o cara... nem adiciono mais teus artigos como favoritos, eu só acesso teu perfil e leio bons materiais! :P.. estava até lendo um artigo seu em outro site que eu achei sem querer. E ao ler o artigo e ver quem era o escritor adivinha quem "CABELO"... Parabéns! você mitiva muitas pessoas.. Obrigado!
só por curiosidade o site era esse "http://tecnociencia.inf.br/tecnico/Pianista". estou mandando assim com convite e meu nick como patricinador, pra quem quiser se cadastrar e ler os materias, fiquem a vontade!
[13] Comentário enviado por maphdelic em 09/10/2008 - 21:37h
Ok, resolvi dois problemas de dependência ao se configurar o pacote no ubuntu hardy (Kurumin NG, para ser mais expecífico). O auto-apt instalou algumas coisas, mas duas ele não resolveu. Uma é resolvida com o pacote "libmagick++9-dev" e a outra com o "python-gtk2-dev". Com esses dois, mais o auto-apt, consegui configurar. Vamos vwr se eu compilo...
[19] Comentário enviado por ramon.rdm em 03/01/2009 - 17:37h
Muito interessante!
Esse software pode ser o que estou precisando para um projeto de gerenciamento de produtos!
Mas ao instalar ocorre o seguinte:
checking for MAGICK... configure: error: Package requirements (ImageMagick++ >= 6.2.6) were not met:
No package 'ImageMagick++' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables MAGICK_CFLAGS
and MAGICK_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
Tenho o imagemagick instalado e nada.....
e agora????
alguem saberia me ajudar?
Obrigado e parabens pelo artigo!
[20] Comentário enviado por maa.marcos em 05/01/2009 - 09:45h
Muito bom seu artigo...
Não entendo muito sobre instalação, compilação, etc, etc, etc. Tentei instalar em 3 distros diferentes e não funcionou. Muitos erros na compilação.
Tenho algumas dúvidas sobre o funcionamento:
Funciona apenas com o código de barras na horizontal? E se estiver na vertical, inclinado 45% ou de cabeça pra baixo?
O que acontece se mostrarmos 2 ou mais códigos de barras ao mesmo tempo?
Poderia indicar outros vídeos mostrando estas funcionalidades?
Existem outros projetos com o mesmo objetivo?
[25] Comentário enviado por marcinhoCP em 29/07/2010 - 16:21h
muito bom o artigo!!!
quando eu coloco o comando ./configure dá esse erro.
4) were not met:
No package 'QtCore' found
No package 'QtGui' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables QT_CFLAGS
and QT_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.