Jeffrey Cross
Jeffrey Cross

Codebox: Use códigos QR no Processing

Este Codebox mostra como usar a biblioteca ZXing (pronunciado “Zebra Crossing”) para identificar códigos QR em um feed de webcam ao vivo. (Embora o Processing tenha uma grande biblioteca de contribuições chamada QRCode, o ZXing é muito mais rápido e pode fazer reconhecimento em tempo real.) O esboço procura por códigos QR com um ISBN de livros O’Reilly codificados (ISBNs são identificadores de livros padrão). Quando encontra uma, ela sobrepõe a imagem da capa do livro ao vídeo sobre o código QR.

Sobre QR Codes Antes de saltar para o código, um pouco de fundo. Um código QR tem duas partes básicas - os três elementos de posicionamento, que são os grandes blocos quadrados nos três cantos, e os elementos de dados, que são todo o resto. Os elementos de posicionamento ajudam o software a determinar a localização e a orientação do código QR. Os elementos de dados representam os dados codificados. Por exemplo, pode ser um número de produto, um URL ou (no nosso caso, aqui) um ISBN. O código também possui algumas informações usadas para correção de erros. A imagem a seguir deve fornecer a ideia básica:

Você pode usar um site como o Kaywa para gerar o código. Veja um exemplo de como gerar um código para "9780596510510", o ISBN do livro de Tom Igoe, Making things Talk:

Configurando o esboço

A primeira coisa a fazer é baixar o ZXing e usar seu compilador Java para criar dois arquivos: core.jar e javase.jar. Se você se sente confortável com o Java, tudo o que precisa fazer é entrar nos diretórios "core" e "javase" e executar ant para criar os arquivos jar.

Se você não é, eu os compilei para você. (Mas, não diga a ninguém - isso provavelmente viola algum requisito de licença ou o outro. Basta fazer o download de javase.jar e core.jar. (Um arquivo jar como um arquivo zip para Java que comprime e agrupa vários arquivos.)

Depois de ter os arquivos jar, ative Processando e, em seguida, use "Esboço -> Adicionar arquivo" para adicioná-los ao seu projeto. Em seguida, cole o código do esboço na janela de código principal. Você pode obtê-lo a partir do arquivo qr_codes.pde ou retirá-lo da seguinte caixa de código:

Imprima alguns QR Codes para vários livros da O'Reilly e comece o sketch. Quando você mostra os códigos para a webcam, deve ver a imagem da capa aparecer após um pequeno intervalo. Claro, você pode codificar qualquer outra informação que desejar.

Discussão A configuração é semelhante à que usamos nas postagens no OpenCV. Primeiro, configuramos um novo objeto de leitor, assim:

com.google.zxing.Reader reader = new com.google.zxing.MultiFormatReader ();

Em seguida, passamos ao leitor uma imagem que pode conter um código QR. Neste caso, estamos apenas passando os quadros vindos da webcam. É um pouco mais complexo, pois precisamos fazer algumas transformações na imagem bruta antes de podermos usar o decodificador - tudo isso é feito no desenhar() método:

LuminanceSource source = new BufferedImageLuminanceSource ((BufferedImage) cam.getImage ()); Bitmap BinaryBitmap = novo BinaryBitmap (novo HybridBinarizer (fonte)); Resultado result = reader.decode (bitmap);

Uma vez que ligamos decodificar(), a leitor objeto terá dados sobre qualquer código QR detectado. o getResultPoints () método retorna as coordenadas de cada um dos indicadores de posição eo getText () método retorna o texto codificado. Supondo que encontramos alguma coisa, tentamos retirar a capa correspondente do site da O’Reilly e exibi-la. Como uma ruga, acompanhamos o último ISBN que encontramos para não carregarmos constantemente a mesma imagem em todos os quadros.

Esta demo deve dar a você mais do que você precisa para fazer seu próprio QR hacking com Processing. Diverta-se!

PS: Lembre-se, você está usando o Windows, você precisa instalar o WinVDIG e o QuickTime para usar a webcam no Processing.

Mais: Confira todas as colunas Codebox aqui

Na Maker Shed:


Introdução ao Processamento Aprenda programação de computadores da maneira mais fácil com o Processing, uma linguagem simples que permite usar o código para criar desenhos, animações e gráficos interativos. Os cursos de programação geralmente começam com a teoria, mas este livro permite que você entre em projetos criativos e divertidos. É ideal para quem quer aprender programação básica e serve como uma simples introdução aos gráficos para pessoas com algumas habilidades de programação.

Ação

Deixar Um Comentário