Algoritmo de Canny
Fue desarrollado por John F. Canny en 1986 que utiliza un algoritmo de múltiples etapas para detectar una amplia gama de bordes en imágenes. Y se basa en la teoría computacional acerca de la detección de bordes.
El propósito de este algoritmo es el de descubrir bordes en las imágenes que se llegaran a analizar con este algoritmo.
Con la tecnica de reducción significativa de datos en una imagen, preservando las propiedades estructurales de la imagen.
A pesar de ser un algoritmo antiguo se a convertido en el algoritmo de detección de bordes estandar.
Este algoritmo esta enfocado en los siguientes puntos:
-
Buena detección.- El algoritmo debe marcar el mayor número real en los bordes de la imagen como sea posible.
-
Buena localización.- los bordes de marca deben estar lo más cerca posible del borde de la imagen real.
-
Respuesta mínima.- El borde de una imagen sólo debe ser marcado una vez, y siempre que sea posible, el ruido de la imagen no debe crear falsos bordes
​
​
​
​
​
​
​
Fases del algoritmo de Canny:
Algoritmo de detección que Canny se ejecuta en 5 etapas separadas
-
Suavizar: Desenfoque de la imagen para eliminar el ruido.
-
Encontrar gradientes: los bordes deben estar marcados en los gradientes de la imagen que tienemagnitudes grandes.
-
No supresión máxima: Sólo los máximos locales se debe marcar como bordes.
-
Umbralización doble: Los posibles bordes deben estár determinados por umbralización.
-
Seguimiento por histéresis: Los bordes finales se determinan mediante la supresión de todas las aristas que no están conectados a una muy determinada borde (fuerte).
​
Un poco de descripción
Suavizar
Es inevitable que todas las imágenes tomadas desde una cámara contendrá cierta cantidad de ruido. paraevitar que el ruido se confunda con bordes, el ruido se reduce. Por lo tanto primero se aisla laimagen mediante la aplicac σión de un filtro de Gauss. El núcleo de un filtro de Gauss con una desviación estándar de σ = 1,4.
​
​
​
​
​
​
​
​
​
​
Un ejemplo de suavizado, el original en escala de grises imagen se suaviza con el filtro de Gauss para suprimir el ruido.
​
​
​
​
​
​
​
​
​
Original Suavizado
​
​
Encontrar gradientes
​
El algoritmo de Canny encuentra básicamente bordes, donde la escala de grises de intensidad de la imagen cambia más. Estas áreas se encuentran mediante la determinación de los gradientes de la imagen. Los gradientes en cada píxel en la imagen suavizada se determinan mediante la aplicación de lo que se conocecomo el Sobel-operador. primer paso es aproximar el gradiente en la dirección (x - y) respectivamente, aplicando el o σperador de Sobel
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
Las magnitudes del gradiente (también conocidos como los puntos fuertes de borde) se puede determinar entonces como una medida de la distancia euclídeana al aplicar la ley de Pitágoras, como se muestra en la suiguente ecuación.
​
​
​
A veces se simplifica mediante la aplicación de medida de distancia Manhattan, como se muestra en la siguiente ecuación
​
​
​
​
​
​
​
pero en este caso se esta utilizando. La medida de la distancia euclidiana porque los puntos fuertes de borde calculados se comparan con la imagen filtrada en la imagen original.
donde:
​
​
​
​
​
​
​
​
​
​
​
​
​
Gx y Gy son los gradientes en la respectiva direccion x - y.
En la imagen se muestra las magnitudes del gradiente que a menudo
​
imagen suavizada valores de gradientes altos
​
indican los bordes con bastante claridad. Sin embargo, los bordes son típicamente amplio y por lo tanto no indican exactamente los bordes. Por q solo se ve los bordes como mascaras y no se los ve como bordes finos. Para que estos bordes sean reconocidos, la imagen pasa a la siguiente fase.
​
​
Un video donde se ve la aplicabilidad del algoritmo de Canny.
En esta aplicación se ve claramente como la camara captura la imagen colorida como tal luego convierte en una imagen de colores oscuros para luego poder detectatar los bordes sobre la imagen, y se ve que va calibrando el umbral, el suavizado de la imagen
​
​








