Como gerar e ler códigos de barras com Python
Ao adquirir um produto de um estabelecimento de varejo, muitas vezes se observa faixas pretas paralelas e alternadas de diferentes dimensões estampadas nele, o que é comumente referido como código de barras. Um código de barras serve como um meio pelo qual os dados podem ser representados visualmente e legíveis por máquina, facilitando o armazenamento e a recuperação de detalhes pertinentes sobre os produtos para fins de identificação e monitoramento eficientes. Inúmeros setores comerciais contam com códigos de barras para uma gestão de estoque eficaz.
O Python fornece a capacidade de criar códigos de barras por meio de suas funções e bibliotecas integradas, bem como a capacidade de decodificar códigos de barras digitalizados usando ferramentas semelhantes. Isso permite a fácil integração da tecnologia de código de barras em várias aplicações.
Como Gerar e Personalizar Códigos de Barras
As etapas a seguir mostram como gerar códigos de barras usando a biblioteca python-barcode.
Instale a biblioteca necessária
Abra seu terminal ou prompt de comando e execute o seguinte comando de instalação do pip para configurar a biblioteca necessária. É crucial que seu sistema tenha pip pré-instalado para que este processo prossiga com sucesso.
pip install python-barcode
Importe os módulos necessários
Para garantir a funcionalidade adequada de geração de código de barras em seu script, é essencial incorporar declarações de importação apropriadas que permitirão o acesso aos módulos necessários necessários para esse processo.
import barcode
from the barcode.writer import ImageWriter
Os escritores lidam com a geração e salvamento de imagens de código de barras em diferentes formatos. A biblioteca python-barcode fornece diferentes gravadores de códigos de barras. Aqui você vai usar a classe ImageWriter que renderiza códigos de barras como imagens.
Código para Gerar Código de Barras
A biblioteca python-barcode oferece vários formatos de código de barras, como Code39, Code128, EAN13 e ISBN-10 para gerar códigos de barras.
def generate_barcode(data, barcode_format, options=None):
# Get the barcode class corresponding to the specified format
barcode_class = barcode.get_barcode_class(barcode_format)
# Create a barcode image using the provided data and format
barcode_image = barcode_class(data, writer=ImageWriter())
# Save the barcode image to a file named "barcode" with the specified options
barcode_image.save("barcode", options=options)
A função “generate\_barcode” cria um código de barras com base nos dados fornecidos e nas especificações de formatação (especificadas pelo “barcode\_format”) e o salva como um arquivo de imagem denominado “barcode.png”. A extensão do arquivo dependerá do gravador de imagem específico utilizado na criação da imagem.
Gerar e Personalizar Código de Barras
Para criar um código de barras usando a função generate\_barcode
, basta fornecer os parâmetros necessários ao chamar a função.
generate_barcode("All Things N", "code128")
Os escritores têm várias opções que permitem personalizar os códigos de barras. As opções de personalização incluem a modificação do tamanho, fonte, cor do código de barras e assim por diante. Você pode consultar a documentação python-barcode para acessar a lista completa de opções comuns de gravação.
generate_barcode("All Things N", "code128", options={"foreground":"red",
"center_text": False,
"module_width":0.4,
"module_height":20})
Como digitalizar e decodificar códigos de barras
As etapas a seguir mostram como digitalizar e decodificar códigos de barras usando a biblioteca Python pyzbar.
Instale as bibliotecas necessárias
Para executar a digitalização e decodificação das informações do código de barras, é necessário ter os componentes de software apropriados instalados em seu sistema. Esses componentes são chamados de “bibliotecas” no jargão técnico e fornecem a funcionalidade necessária para ler e interpretar os dados codificados em um símbolo de código de barras.
brew install zbar # Mac OS X
sudo apt-get install libzbar0 # Linux OS
pip install pyzbar opencv-python
Importe os módulos necessários
Após a instalação das bibliotecas necessárias, é essencial incorporar instruções de importação apropriadas em seu script para facilitar o acesso e a utilização dos módulos necessários.
import cv2
from pyzbar import pyzbar
Escanear códigos de barras de imagens
Para digitalizar códigos de barras de arquivos de imagem:
Utilize a funcionalidade fornecida pela função imread
do OpenCV para recuperar uma instância de um array numpy, que representa a imagem carregada.
A imagem de entrada deve ser passada pela biblioteca PyZBar para realizar operações de detecção e decodificação usando a matriz de saída. Além disso, é possível utilizar instâncias da classe Image do módulo PIL (Python Imaging Library) como um método alternativo para o processamento de imagens.
def scan_barcode_from_image(image_path):
# Read the image from the provided file path
image = cv2.imread(image_path)
# Decode barcodes from the image using pyzbar
barcodes = pyzbar.decode(image)
# Iterate through detected barcodes and extract data from the barcode
for barcode in barcodes:
# uses UTF-8 encoding
barcode_data = barcode.data.decode("utf-8")
barcode_type = barcode.type
print("Barcode Data:", barcode_data)
print("Barcode Type:", barcode_type)
A função aceita uma designação de um caminho de imagem como sua entrada, recupera a representação visual representada do referido caminho, decifra quaisquer códigos de barras que possam estar incorporados nele e produz uma exibição das informações expostas e classificação de código de barras correspondente para cada código de barras identificado.
scan_barcode_from_image("barcode.png")
> Barcode Data: All Things N
> Barcode Type: CODE128
Escanear códigos de barras do fluxo da webcam
Utilizando a biblioteca Python OpenCV, pode-se realizar varredura em tempo real e leitura de informações de código de barras por meio de um feed de webcam.
def scan_barcode_from_webcam():
# Initialize video capture from the default webcam (index 0)
video_capture = cv2.VideoCapture(0)
while True:
# Get a frame from the webcam stream
_, frame = video_capture.read()
# Decode barcodes in the frame
barcodes = pyzbar.decode(frame)
# Process detected barcodes
for barcode in barcodes:
# Extract barcode data and type and print them
barcode_data = barcode.data.decode("utf-8")
barcode_type = barcode.type
print("Barcode Data:", barcode_data)
print("Barcode Type:", barcode_type)
# Check for exit condition: Press 'q' to quit the loop
if cv2.waitKey(1) & 0xFF == ord("q"):
break
# Release video capture and close OpenCV windows
video_capture.release()
cv2.destroyAllWindows()
scan_barcode_from_webcam()
A função “scan\_barcode\_from\_webcam” adquire continuamente representações visuais sucessivas de um determinado campo de visão capturado pela câmera embutida de um computador, traduz quaisquer padrões de sequência de símbolos que possam ser discerníveis na imagem representada, extrai dados associados ao padrão reconhecido e exibe as informações extraídas para revisão do usuário. Para interromper a operação, digite o caracter ‘q’ através do teclado.
Gerando códigos de barras e códigos QR em Python
A utilização do Python facilita a geração e a interpretação dos dados do código de barras de maneira simplificada. A adesão aos procedimentos especificados permite a criação de vários formatos de código de barras adaptados aos requisitos de cada um.
Os códigos QR são códigos de barras avançados que podem ser decifrados por meio do uso de smartphones e dispositivos similares equipados com câmeras e aplicativos de software compatíveis. A biblioteca Python qrcode permite que os usuários produzam, interpretem e manipulem facilmente esses códigos usando a linguagem de programação Python.