Práctica 2. Detector de bordes Canny

Transcripción

Práctica 2. Detector de bordes Canny
FVC - Fundamentos de Visión por Computador
Práctica 2. Detector de bordes Canny
Objetivos
−
Comprender el concepto de detección de bordes en una imagen digital, así como su
utilidad y la dificultad de su implementación.
−
Uilizar un método de detección de bordes, en particular, el detector de bordes Canny.
−
Realizar ejercicios de programación práctica para la implementación de un detector de
bordes.
Duración estimada:
2 horas
Material y herramientas
−
Ordenador personal con SO Linux o Windows.
−
Compilador de C++ (gcc o Visual C++).
−
Librería SpToolkit.
Descripción
Se pide implementar el detector de bordes Canny. Para ello, os proporcionamos lo siguiente:
•
Un programa que obtiene el gradiente de la imagen con la primera derivada de la
gaussiana, de modo que ofrece como resultado las dos componentes del vector
gradiente en cada píxel: gradiente en las direcciones X e Y.
•
Una función que calcula la magnitud y la orientación del gradiente.
•
Una función que realiza la supresión de no-máximos.
•
Otras funciones auxiliares que pueden ser de utilidad.
Esta práctica consiste en completar el programa para que implemente la totalidad del algoritmo
Canny, además de que genere resultados intermedios que permitan comprobar su
funcionamiento.
Ejercicios
1. Ejecutar el programa con diferentes parámetros para comprobar la influencia de σ en la
obtención del gradiente.
•
Los parámetros –i, -o indican el nombre de la imagen de entrada y de los resultados.
•
El parámetro –s indica la anchura de la gaussiana, σ.
•
El parámetro –e indica la precisión en el cálculo del filtro, esto es, a partir de qué valor ξ
un peso del filtro se considera despreciable. Es opcional, y por defecto vale 0,1.
•
Los parámetros –T1, -T2 indican los umbrales, T1<T2, para la histéresis de umbral. (No
se usan hasta el ejercicio 3).
http://www.vision.uji.es/courses/FVC
1
2. Completar el programa que se proporciona para que, además del gradiente en X e Y,
genere:
•
Una imagen PGM con la magnitud del gradiente
•
Una imagen PGM con la orientación del gradiente
•
Una imagen PGM con el resultado de la supresión de no-máximos en la magnitud.
Por ejemplo, en la figura 1 se muestran los resultados obtenidos con σ=1, ξ=0,01.
(a)
(b)
(c)
(d)
(e)
(f)
Fig. 1: Resultados para la imagen “cube_left.pgm”, σ=1: (a) imagen
original, (b) gradiente en la direccón X, (c) gradiente en la dirección Y,
(d) magnitud del gradiente, (e) orientación del gradiente, (f) máximos
locales de la magnitud, considerando la dirección del gradiente.
3. Añadir al programa el último paso del algoritmo Canny: la histéresis de umbral.
El algoritmo de doble umbral se puede hacer recursivo o iterativo. Elige la opción que prefieras.
En la figura 2 se muestra un ejemplo del resultado.
Fig. 2: Resultado de la histéresis de umbral con σ=1, T1=20 y T2=40.
http://www.vision.uji.es/courses/FVC
2

Documentos relacionados