Es muy similar al operador Prewitt. También es una máscara derivado y se utiliza para la detección de bordes. Como Prewitt operador Sobel operador también se utiliza para detectar dos tipos de bordes de una imagen:
-Dirección vertical
-Dirección horizontal
Diferencia con el operador de prewitt
La principal diferencia es que en el operador de Sobel los coeficientes de máscaras no son fijos y pueden ser ajustados de acuerdo a nuestro requerimiento, a menos que no violen ninguna propiedad de máscaras derivados.
Este operador pone un especial énfasis en pixeles cercanos al centro de la mascara.
Algoritmo:
1.- Leemos la imagen a escala de grises.
2.- Saber el tamaño de la imagen.
3.- Creamos las siguientes matrices para los bordes.
g=np.zeros((r,c),dtype=np.uint8)
h=np.zeros((r,c),dtype=np.uint8)
p=np.zeros((r,c),dtype=np.uint8)
4.- Creamos dos arreglos que seran las matrices con las mascaras x=[[-1,-2,-1],[0,0,0],[1,2,1], y=[[-1,0,1], [-2,0,2], [-1,0,1], para obtener el operador de sobel.
g=np.zeros((r,c),dtype=np.uint8)
h=np.zeros((r,c),dtype=np.uint8)
p=np.zeros((r,c),dtype=np.uint8)
4.- Creamos dos arreglos que seran las matrices con las mascaras x=[[-1,-2,-1],[0,0,0],[1,2,1], y=[[-1,0,1], [-2,0,2], [-1,0,1], para obtener el operador de sobel.
5.- Se realiza el recorrido de la imagen original con dos ciclos for, una para filas y columnas en la cual utilizamos una parte de la imagen original (3x3), la cual de acuerdo a la posición de los pixeles se multiplicaran con los pixeles de la matriz de la mascara X y sumamos el resultado con el siguiente resultado del siguiente pixel y así sucesivamente, la cual el resultado total lo elevaremos al cuadrado y le sacaremos su raíz para obtener el borde de X.
6.- Nuevamente se realiza el mismo recorrido anterior pero ahora con la matriz de la mascara Y para obtener el borde de Y.
7.-Hacemos un recorrido columna, renglón para unir el borde de X y Y.
9.- Mostrar imagen original, borde de X, borde de Y y borde de Sobel.
6.- Nuevamente se realiza el mismo recorrido anterior pero ahora con la matriz de la mascara Y para obtener el borde de Y.
7.-Hacemos un recorrido columna, renglón para unir el borde de X y Y.
9.- Mostrar imagen original, borde de X, borde de Y y borde de Sobel.
10.- Guardamos las imágenes.
No hay comentarios.:
Publicar un comentario