Detecção de Bordas
Detecção de Bordas
Bordas representam mudanças súbitas na intensidade dos pixels, que geralmente correspondem aos limites dos objetos. Detectar bordas auxilia no reconhecimento de formas e na segmentação.
Detecção de Bordas de Sobel
O operador Sobel calcula gradientes (mudanças de intensidade) nas direções X e Y, auxiliando na detecção de bordas horizontais e verticais.
# Convert to grayscale
image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
# Apply Sobel filter
sobel_x = cv2.Sobel(image, cv2.CV_64F, 1, 0, ksize=5) # Detects vertical edges
sobel_y = cv2.Sobel(image, cv2.CV_64F, 0, 1, ksize=5) # Detects horizontal edges
sobel_combined = cv2.magnitude(sobel_x, sobel_y) # Combines both directions
Parâmetros principais:
src
: imagem de entrada (deve estar em escala de cinza);ddepth
: profundidade da imagem de saída (por exemplo,cv2.CV_64F
);dx
: ordem da derivada na direção X (definir1
para bordas horizontais);dy
: ordem da derivada na direção Y (definir1
para bordas verticais);ksize
: tamanho do kernel (deve ser ímpar, por exemplo,3
,5
,7
).
Detecção de Bordas de Canny
O Detector de Bordas de Canny é um algoritmo de múltiplas etapas que fornece bordas mais precisas por meio de:
- Aplicação de desfoque Gaussiano para remover ruído.
- Cálculo dos gradientes de intensidade usando filtros de Sobel.
- Supressão de bordas fracas.
- Uso de dupla limiarização e rastreamento de bordas.
# Apply Canny Edge Detector
canny_image = cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)
image
: imagem de entrada em tons de cinza;threshold1
: limite inferior para detecção de bordas (exemplo:50
);threshold2
: limite superior para detecção de bordas (exemplo:150
);apertureSize
(opcional): tamanho do kernel Sobel (padrão:3
, deve ser ímpar);L2gradient
(opcional): utiliza cálculo de gradiente L2 mais preciso (padrão:False
).
Uma comparação de métodos de detecção de bordas:

Swipe to start coding
Você recebe uma image
:
- Converter a imagem para escala de cinza e armazenar em
gray_image
; - Aplicar o filtro de Sobel nas direções X e Y (profundidade de saída
cv2.CV_64F
e tamanho do kernel3
) e armazenar emsobel_x
esobel_y
, respectivamente; - Combinar as direções filtradas por Sobel em
sobel_img
; - Aplicar o filtro de Canny com limiar de
200
a300
e armazenar emcanny_img
.
Solução
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
What are the main differences between Sobel and Canny edge detection?
Can you explain when to use Sobel versus Canny edge detection?
Can you provide more details on how the Canny edge detector works?
Awesome!
Completion rate improved to 3.45
Detecção de Bordas
Deslize para mostrar o menu
Detecção de Bordas
Bordas representam mudanças súbitas na intensidade dos pixels, que geralmente correspondem aos limites dos objetos. Detectar bordas auxilia no reconhecimento de formas e na segmentação.
Detecção de Bordas de Sobel
O operador Sobel calcula gradientes (mudanças de intensidade) nas direções X e Y, auxiliando na detecção de bordas horizontais e verticais.
# Convert to grayscale
image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
# Apply Sobel filter
sobel_x = cv2.Sobel(image, cv2.CV_64F, 1, 0, ksize=5) # Detects vertical edges
sobel_y = cv2.Sobel(image, cv2.CV_64F, 0, 1, ksize=5) # Detects horizontal edges
sobel_combined = cv2.magnitude(sobel_x, sobel_y) # Combines both directions
Parâmetros principais:
src
: imagem de entrada (deve estar em escala de cinza);ddepth
: profundidade da imagem de saída (por exemplo,cv2.CV_64F
);dx
: ordem da derivada na direção X (definir1
para bordas horizontais);dy
: ordem da derivada na direção Y (definir1
para bordas verticais);ksize
: tamanho do kernel (deve ser ímpar, por exemplo,3
,5
,7
).
Detecção de Bordas de Canny
O Detector de Bordas de Canny é um algoritmo de múltiplas etapas que fornece bordas mais precisas por meio de:
- Aplicação de desfoque Gaussiano para remover ruído.
- Cálculo dos gradientes de intensidade usando filtros de Sobel.
- Supressão de bordas fracas.
- Uso de dupla limiarização e rastreamento de bordas.
# Apply Canny Edge Detector
canny_image = cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)
image
: imagem de entrada em tons de cinza;threshold1
: limite inferior para detecção de bordas (exemplo:50
);threshold2
: limite superior para detecção de bordas (exemplo:150
);apertureSize
(opcional): tamanho do kernel Sobel (padrão:3
, deve ser ímpar);L2gradient
(opcional): utiliza cálculo de gradiente L2 mais preciso (padrão:False
).
Uma comparação de métodos de detecção de bordas:

Swipe to start coding
Você recebe uma image
:
- Converter a imagem para escala de cinza e armazenar em
gray_image
; - Aplicar o filtro de Sobel nas direções X e Y (profundidade de saída
cv2.CV_64F
e tamanho do kernel3
) e armazenar emsobel_x
esobel_y
, respectivamente; - Combinar as direções filtradas por Sobel em
sobel_img
; - Aplicar o filtro de Canny com limiar de
200
a300
e armazenar emcanny_img
.
Solução
Obrigado pelo seu feedback!
single