Desfoque Gaussiano e Detecção de Bordas Utilizando OpenCV

Preparação do Ambiente

Antes de começar, assegure-se de que a biblioteca OpenCV está instalada. Utilize o seguinte comando, se necessário:

pip install opencv-python

Implementação e Exemplo de Código

import cv2 as cv

# Carregando a imagem do disco
imagem_original = cv.imread('fotografia.png')

# Aplicando suavização gaussiana
imagem_suavizada = cv.GaussianBlur(imagem_original, (7, 7), sigmaX=0)

# Detectando bordas usando o algoritmo de Canny
contornos_detectados = cv.Canny(imagem_suavizada, limiar_inferior=150, limiar_superior=250)

# Exibindo os resultados em janelas distintas
cv.imshow('Imagem Original', imagem_original)
cv.imshow('Resultado da Suavização', imagem_suavizada)
cv.imshow('Mapa de Bordas', contornos_detectados)
cv.waitKey(0)
cv.destroyAllWindows()

Detalhamento do Código

  1. Importação da Biblioteca:
    A instrução import cv2 as cv carrega o módulo OpenCV para o programa.
  2. Leitura do Arquivo de Imagem:
    A função cv.imread('fotografia.png') realiza a leitura da imagem. Por padrão, ela é carregada no espaço de cores BGR.
  3. Filtragem por Desfoque Gaussieno:
    O método cv.GaussianBlur() executa a operação de suavização. Os parâmetros (7, 7) definem o tamanho do kernel de convolução. O argumento sigmaX=0 indica que o desvio padrão será calculado automaticamente pelo OpenCV.
  4. Detecção de Bordas com Canny:
    O algoritmo cv.Canny() requer dois limiares. O valor 150 atua como limiar inferior para detecção de bordas candidatas, e 250 como limiar superior para confirmar bordas fortes. Ajustar esses valores permite equilibrar a sensibilidade e a robustez da detecção.
  5. Visualização das Saídas:
    As funções cv.imshow() abrem janelas para cada imagem processada. cv.waitKey(0) pausa a execução até que uma tecla seja pressionada, e cv.destroyAllWindows() fecha todas as janelas abertas.

Papel do Desfoque Gaussiano

Este filtro passa-baixa é empregado para reduzir o ruído e detalhes finos, promovendo uma suavização da imagem. Ele suprime as altas frequências, resultando em uma aparência mais homogênea, sendo muitas vezes um passo preparatório para outras análises.

Papel da Detecção de Bordas

A detecção de bordas, exemplificada pelo algoritmo de Canny, localiza regiões de transição abrupta de intensidade. É uma técnica crucial para segmentação de objetos, extração de características e reconhecimento de padrões em imagens.

Casos de Utilização Combinada

A aplicação conjunta dessas técnicas é comum em diversas situações práticas:

  • Redução de Ruído Pré-análise: Aplicar o desfoque antes de processos mais sensíveis para minimizar interferências.
  • Segmentação por Contornos: Usar o mapa de bordas para delimitar regiões de interesse.
  • Realce de Estruturas: Destacar formas e linhas principais dentro de uma cena para análise posterior.

Tags: OpenCV Desfoque Gaussiano Detecção de Bordas Algoritmo de Canny processamento de imagens

Publicado em 7-4 04:31