Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo

O artigo apresenta a utilização de códigos de barra em aplicações Java ME. Para se utilizar tal recurso é necessário a API chamada ZXing (lê-se Zebra Crossing). Para a captura da imagem também foi utilizada no artigo a Mobile Media API.


Para que serve

Este artigo pode ser utilizado por programadores que desejam conhecer alternativas para a entrada de dados em aplicações móveis. Como o artigo apresenta alguns conceitos da Mobile Media API, pode ser utilizado também por leitores que desejam utilizar tal recurso.


Em que situação o tema é útil

Este artigo é útil para desenvolvedores que visam otimizar o processo de entrada de dados em aplicativos móveis, e também ara os estudiosos que gostam de incrementar aplicativos com recursos novos e interessantes.

Autores: Sandro Valgoi e Robison Cris Brito

Os telefones celulares deixaram de ser dispositivos utilizados exclusivamente para realizar e receber ligações e passaram a substituir dispositivos eletrônicos utilizados no dia a dia, como MP3 player, gravador de som, despertar e até mesmo o GPS.

Dentre os recursos existentes atualmente nos aparelhos celulares, um dos mais utilizados é a câmera digital integrada, que permite fotografar e filmar, armazenando as informações internamente no aparelho celular ou em cartões de memórias.

Com as novas tecnologias e a miniaturização dos circuitos eletrônicos, hoje é possível encontrar nos aparelhos celulares câmeras que permitem fotografar com uma qualidade de imagem excelente. Câmeras hoje que ultrapassam a marca de 10 megapixels.

Com as fotos capturas em alta resolução, é possível utilizar algoritmos complexos de processamento de imagem, e que permitem recuperar informações com precisão de fotos retiradas a partir dos novos aparelhos celulares.

Um uso interessante para os novos aparelhos de telefone celular está em capturar código de barras por meio das câmeras dos celulares e decodificar essa imagem capturada utilizando linguagens de desenvolvimento de softwares para dispositivos móveis, como é o caso do Java ME.

A aplicação desse tipo de software é bastante ampla, podendo ser utilizada em locais onde torna-se inviável a utilização de computadores desktop, como por exemplo realizar o controle de presença (o ponto eletrônico) de funcionários da construção civil (lembrando que em grandes empresas, os funcionários costumam ter um crachá com um código de barras), fazer a contagem de estoque em lojas, controlar a frequência de congressistas em um evento, entre outras aplicações.

Hoje existem várias técnicas de decodificação de códigos de barra, entre elas as baseadas em derivadas, localização de picos, amostragem seletiva e algoritmo EM, sendo técnicas bastante complexas, que no passado inviabilizam a utilização em dispositivos móveis. Entretanto, hoje, devido aos avanços tecnológicos, os aparelhos celulares possuem um poder de processamento relativamente alto (é comum encontrar celulares novos para venda com processamento superior a 400MHz), possuem uma boa quantidade de memória e as imagens capturadas pelas câmeras digitais muitas vezes se equivalem em qualidade às imagens capturadas por scanners conectados a computadores.

Nesse contexto, esse artigo apresenta a utilização de códigos de barra em aplicações Java ME. Veremos que para utilizar tal recurso é necessário a API chamada ZXing (lê-se Zebra Crossing). Para a captura da imagem também será utilizada a Mobile Media API.

Utilização dos códigos de barras com aparelhos celulares

Uma das principais razões para os códigos de barra serem bastante utilizados é sua ampla confiabilidade de leitura e a possibilidade de incluir uma quantidade de informações em uma área impressa muito pequena. Hoje em dia a leitura é realizada por feixe de laser, o que garante uma confiabilidade de quase 100%. Tal confiabilidade pode ser atingida também a partir de algoritmos de reconhecimento de imagens através da câmera do celular, porém, nessa situação deve-se certificar que a imagem capturada não sofrerá nenhuma interferência, como sombras, ausência de iluminação, falta de foco da câmera ou ondulações no código de barra (quando o código de barra não se encontra em uma superfície plana).

Dentre as dicas para aumentar a confiabilidade do reconhecimento do código de barras a partir de imagens capturadas, uma das mais importantes é utilizar códigos de barra que possuem uma pequena densidade de informações impressa em uma área mais ampla, assim o código pode ser mais facilmente detectado com uma câmera de telefone celular normal.

Isto ocorre porque para tais códigos de barra a distância entre o código de barras impresso e a lente da câmera do telefone deve ser grande para que o código de barra possa ser completamente capturado, sem prejudicar a focagem da imagem pela câmera.

Para os códigos de barra impressos com uma densidade muito alta de informação, cada informação é armazenada em pequenos detalhes da imagem e nessas situações, se a câmera do celular não possui uma resolução boa para capturar estes detalhes, partes das informações podem ser perdidas.

...

Quer ler esse conteúdo completo? Tenha acesso completo