OPERADORES DE SOBEL

Para mejorar la detección de orillas podría utilizarse un preprocesamiento pare eliminar altas frecuencias o ruido. El detector de orillas Sobel incluye detección de orillas y suavizamiento. Los operadores de Sobel parten de los operadores de Prewitt adicionando ciertos valores en la mascara que aproximan a un suavizamiento Gaussiano.

Los operadores de Sobel se pueden ver como la combinación unidimensional de diferenciación y cierto suavizamiento. Por ejemplo, uno de los operadores de Sobel lo podemos obtener como el producto de un vector de diferenciación (D) por uno de suavizamiento (G): 

Sobel = DGT 
Donde:
D = (−1, 0, 1) y G = (1, 2, 1).

 Los operadores de Sobel se pueden implementar con las siguientes mascaras:


Para obtener este tipo de operador de una imagen es necesario realizar operaciones con ciertas mascaras.
En el siguiente algoritmo se muestran los pasos para obtener este tipo de operador de bordes de una imagen.

Algoritmo.

1-Leer la imagen original, en tonos de grises.
2-Obtenemos el tamaño de la imagen original.
3-Creamos 3 matrices renglón-columna de la imagen original (r, c), para guardar las coordenadas X, Y y la imagen resultante, las tres de tipo uint8.
4-Se crean dos arreglos una para el eje X: [-1,-2,-1],[0,0,0],[1,2,1]  y otra para el eje Y: [-1,0,1],[-2,0,2],[-1,0,1] de tipo float, que representaran la matriz de la mascara, esto para el operador de Sobel.
5-Recorremos la imagen original en renglón-columna (r, c).  Esto se hará de pixel a pixel, esto quiere decir, que en el recorrido se ira tomando una parte de la imagen original que sera como una subimagen o submascara de 3x3 y cada pixel de la subimagen y de la mascara (arreglo eje X) en la misma posición se multiplicaran y se irán sumando cada resultado y así sucesivamente. El resultado final se elevara al cuadrado y se le sacara su raíz. Esto se hará para el eje X.
6-Para el eje Y se hará el mismo procedimiento anterior (5), con la diferencia que ahora se tomara la mascara del arreglo del eje Y.
7-Recorremos la imagen original en renglón-columna, y uniremos las matrices resultantes que serán la del eje X y Y.
8-Mostramos las imágenes resultantes del operador de Sobel.
9-Guardamos las imágenes.

Ejemplo



Referencia
http://ccc.inaoep.mx/~esucar/Libros/vision-sucar-gomez.pdf
http://www.songho.ca/dsp/convolution/convolution2d_example.html

No hay comentarios.:

Publicar un comentario