Sección 1. Capítulo 10
single
Detección de Bordes
Desliza para mostrar el menú
Los bordes representan cambios bruscos en la intensidad de los píxeles, que generalmente corresponden a los límites de los objetos. La detección de bordes ayuda en el reconocimiento de formas y la segmentación.
Detección de Bordes de Sobel
El operador Sobel calcula los gradientes (cambios en la intensidad) en las direcciones X y Y, lo que ayuda a detectar bordes horizontales y verticales.
# 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
Nota
Parámetros clave:
src: imagen de entrada (debe estar en escala de grises);ddepth: profundidad de la imagen de salida (por ejemplo,cv2.CV_64F);dx: orden de la derivada en la dirección X (establecer en1para bordes horizontales);dy: orden de la derivada en la dirección Y (establecer en1para bordes verticales);ksize: tamaño del kernel (debe ser impar, por ejemplo,3,5,7).
Detección de Bordes de Canny
El detector de bordes de Canny es un algoritmo de múltiples etapas que proporciona bordes más precisos mediante:
- Aplicación de desenfoque gaussiano para eliminar el ruido.
- Cálculo de gradientes de intensidad usando filtros de Sobel.
- Supresión de bordes débiles.
- Uso de doble umbral y seguimiento de bordes.
# Apply Canny Edge Detector
canny_image = cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)
Nota
image: imagen de entrada en escala de grises;threshold1: umbral inferior para la detección de bordes (por ejemplo,50);threshold2: umbral superior para la detección de bordes (por ejemplo,150);apertureSize(opcional): tamaño del kernel de Sobel (por defecto:3, debe ser impar);L2gradient(opcional): uso de un cálculo de gradiente L2 más preciso (por defecto:False).
Comparación de métodos de detección de bordes:
Tarea
Swipe to start coding
Se proporciona una image:
- Convertir la imagen a escala de grises y almacenar en
gray_image; - Aplicar el filtro de Sobel en las direcciones X y Y (profundidad de salida
cv2.CV_64Fy tamaño de kernel3) y almacenar ensobel_x,sobel_yrespectivamente; - Combinar las direcciones filtradas por Sobel en
sobel_img; - Aplicar un filtro de Canny con un umbral de
200a300y almacenar encanny_img.
Solución
¿Todo estuvo claro?
¡Gracias por tus comentarios!
Sección 1. Capítulo 10
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla