Codificação e decodificação de código QR da câmera Raspberry Pi

Este tutorial é sobre como criar um código QR (código de resposta rápida) usando Raspberry Pi B e Python 3.7. O código QR é um código óptico legível por máquina. Óptico significa que pode ser decodificado usando qualquer dispositivo de câmera. Um concorrente direto do código QR é o código de barras. A vantagem do QR sobre o código de barras é que ele é mais rápido de ler e pode armazenar muito mais informações do que o código de barras. Qualquer dispositivo com câmera pode ser transformado em leitor de código QR, enquanto o código de barras precisa de um dispositivo dedicado a laser para descriptografar os códigos de barras.

Para Raspberry Pi, uma biblioteca/pacote QR dedicado está disponível para criação de QR. Para importar o pacote de código QR no código do aplicativo, primeiro você precisa instalá-lo. Para instalar o pacote, abra o Terminal do Raspberry Pi e digite:

$ pip3 instalar qrcode

Observação: Se você estiver trabalhando com python 2 em vez de pip3, use pip para instalar a biblioteca. Você deve usar pip ou pip3 para instalar todas as suas bibliotecas ou pacotes.

Codificação QR

Uma geração simples de código QR usando o pacote qrcode está abaixo.

Primeiro, importei o pacote qrcode para o código do aplicativo. Então a instrução qrcode.make('ENGINEERS GARAGE') está codificando o texto 'ENGINEERS GARAGE' no formato qrcode. O QR codificado é salvo na variável code. Por fim, para salvar o QR code na imagem, passei o nome do arquivo code.save('qrtest.png') no qual o qrcode será salvo.

A imagem de saída é mostrada acima. O tamanho da imagem é 290×290. Parâmetros de imagem como tamanho, cor, fundo, bordas e tamanho da caixa QR podem ser ajustados usando as funções da biblioteca qrcode. Você pode importar outros pacotes de manipulação de imagens no código do aplicativo e filtros podem ser aplicados à imagem de saída para aumentar o brilho, o contraste e a nitidez.

Decodificando QR

Para decodificar o qrcode, precisamos instalar mais alguns pacotes. Zbarlight é um wrapper popular para python. É usado para decodificar e extrair o qrcode de um arquivo de imagem.

Abra o Terminal no Raspberry Pi e digite o seguinte:

$ apt-get instalar libzbar0 libzbar-dev

$ pip3 instalar zbarlight

Use pip se estiver trabalhando com python 2. Você pode ocorrer erros durante a compilação. Muito provavelmente, o erro é um pacote ausente. Zbarlight depende de outros pacotes pré-instalados no diretório Python, mas às vezes você precisa instalá-los manualmente. Instale todos os pacotes um por um (para cada instalação de pacote, visite Se aparecer PIL não encontrado, instale-o usando o comando

pip instalar –no-index -f -U PIL

Após a instalação bem-sucedida, importe o pacote zbarlight em seu código. Você também precisa importar o atributo de imagem do pacote PIL. O pacote PIL é usado para importar e trabalhar com imagens.

Descrição de variáveis ​​e declarações

  • A variável file_path recebe o endereço da imagem.
  • Com open(file_path, 'rb') as image_file: Abre o arquivo como arquivo de imagem
  • Image = Image.open(image_file) o objeto de imagem é criado
  • load carrega o objeto de imagem contendo os dados de pixel
  • Codes = zbarlight.scan_codes(('qrcode'),image) Busca/decodifica o texto presente nos pixels.

Finalmente, a instrução print imprime o texto decodificado.

Usei o Thonny ide presente no sistema operacional Raspbian para escrever e testar código. No lado esquerdo você pode ver a imagem gerada colocada na área de trabalho. Você pode ver o Thonny ide qr no código de extração. O caminho do arquivo de imagem qr está apontando para a área de trabalho. O resultado da decodificação é exibido na janela do shell abaixo da janela de código.

Vamos fazer esse projeto DIY: Onde comprar peças?
Framboesa pi (Mouser Electronics)

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.