Projeção de Cinza no Halcon:Fundamentos e Comparação entre Modos
Na detecção industrial por visão computacional, a técnica de projeção de cinza atua como uma ferramenta crucial para extrair características relevantes de imagens complexas. Ela permite localizar elementos em placas de circuito, reconhecer códigos ou identificar defeitos em superfícies. Neste artigo, exploramos o operador projecoes_cinza no Halcon, focando nos modos ‘simple’ e ‘rectangle’, e analisamos suas aplicações e desempenho.
1. Princípios Básicos da Projeção de Cinza
A projeção de cinza reduz informações de imagem 2D para um vetor 1D, calculando estatísticas de pixels em uma região. Isso diminui o custo computacional enquanto preserva características estruturais. A projeção horizontal, por exemplo, média os valores de cinza por linha, enquanto a vertical faz o mesmo por coluna. Este método suporta diversas aplicações, como posicionamento de objetos, segmentação de caracteres e detecção rápida de defeitos. No Halcon, o operador projecoes_cinza encapsula esses cálculos em dois modos, adaptando-se a diferentes cenários.
Exemplo em Pseudocódigo:Cálculo de Projeção Horizontal
# Implementação alternativa da projeção horizontal
def gerar_perfil_horizontal(dados_imagem):
perfil = []
for cada_linha in dados_imagem:
soma_pixels = sum(cada_linha)
qtd_pixels = len(cada_linha)
media_cinza = soma_pixels / qtd_pixels
perfil.append(media_cinza)
return perfil
2. Modo ‘Simple’:Uso e Características
O modo ‘simple’ calcula projeções diretamente ao longo dos eixos X e Y da imagem. É eficiente para regiões alinhadas com as coordenadas do sistema, como em inspeções de PCBs posicionadas retangularmente. Internamente, o operador recorta a região especificada e aplica estatísticas linha a linha ou coluna a coluna, resultando em vetores fixos para cada direção.
Exemplo de Código Halcon:Aplicação Básica do Modo Simple
* Configuração e execução da projeção no modo simple
carregar_imagem (IMG, 'pcb_sample.png')
definir_regiao_retangular (AREA, 150, 80, 350, 420)
obter_projecoes (AREA, IMG, 'simple', Perfil_H, Perfil_V)
Comparação de Desempenho entre Modos
| Aspecto | Modo ‘simple’ | Modo ‘rectengle’ |
|---|---|---|
| Velocidade de Cálculo | Alta (processamento direto) | Moderada (requer transformação) |
| Uso de Memória | Baixo | Intermediário |
| Adaptação a Rotação | Somente regiões alinhadas | Qualquer ângulo |
| Dimensões de Saída | Fixas (eixos X/Y) | Variáveis com a região |
Técnicas Práticas para o Modo Simple
- Pré-processamento: Aplicar equalização de histograma para melhorar a qualidade do perfil de projeção.
- Seleção de Região: Incluir uma margem extra ao redor do alvo para minimizar distorções de borda.
- Pós-processamento: Usar cálculos de derivada para localizar bordas com precisão, aprimorando a detecção.