Operador Sobel
El operador de sobel es muy similar al operador de Prewitt. También es una máscara derivada y se utiliza para la detección de bordes. Al igual que el operador Prewitt, el operador sobel también se usa para detectar dos tipos de bordes en una imagen:
- Dirección vertical
- Dirección horizontal
Diferencia con el operador Prewitt
La principal diferencia es que en el operador de sobel los coeficientes de las máscaras no son fijos y pueden ajustarse de acuerdo con nuestro requisito, a menos que no violen ninguna propiedad de las máscaras derivadas.
A continuación se muestra la máscara vertical del operador Sobel:
-1 | 0 | 1 |
-2 | 0 | 2 |
-1 | 0 | 1 |
Esta máscara funciona exactamente igual que la máscara vertical del operador Prewitt. Solo hay una diferencia: tiene valores “2” y “-2” en el centro de la primera y tercera columna. Cuando se aplica a una imagen, esta máscara resaltará los bordes verticales.
Cómo funciona
Cuando aplicamos esta máscara sobre la imagen, resalta los bordes verticales. Simplemente funciona como una derivada de primer orden y calcula la diferencia de intensidades de píxeles en una región de borde.
Como la columna central es de cero, no incluye los valores originales de una imagen, sino que calcula la diferencia de los valores de píxel derecho e izquierdo alrededor de ese borde. Además, los valores centrales de la primera y la tercera columna son 2 y -2 respectivamente.
Esto le da más edad a los valores de píxeles alrededor de la región del borde. Esto aumenta la intensidad del borde y se mejora comparativamente con la imagen original.
A continuación se muestra la máscara horizontal del operador Sobel
-1 | -2 | -1 |
0 | 0 | 0 |
1 | 2 | 1 |
La máscara de arriba encontrará bordes en dirección horizontal y se debe a que la columna de ceros está en dirección horizontal. Cuando convierta esta máscara en una imagen, aparecerán bordes horizontales prominentes en la imagen. La única diferencia entre esto es que tiene 2 y -2 como elemento central de la primera y tercera fila.
Cómo funciona
Esta máscara resaltará los bordes horizontales de una imagen. También funciona según el principio de la máscara anterior y calcula la diferencia entre las intensidades de píxeles de un borde en particular. Como la fila central de la máscara está formada por ceros, no incluye los valores originales del borde en la imagen, sino que calcula la diferencia de las intensidades de píxeles por encima y por debajo del borde en particular. Incrementando así el cambio brusco de intensidades y haciendo más visible el filo.
Ahora es el momento de ver estas máscaras en acción:
Imagen de muestra
A continuación se muestra una imagen de muestra en la que aplicaremos dos máscaras, una a la vez.
Después de aplicar Vertical Mask
Después de aplicar la máscara vertical en la imagen de muestra anterior, se obtendrá la siguiente imagen.
Después de aplicar la máscara horizontal
Después de aplicar la máscara horizontal en la imagen de muestra anterior, se obtendrá la siguiente imagen
Comparación
Como puedes ver que en la primera imagen en la que aplicamos máscara vertical, todos los bordes verticales son más visibles que la imagen original. Del mismo modo, en la segunda imagen hemos aplicado la máscara horizontal y, como resultado, todos los bordes horizontales son visibles.
Entonces, de esta manera, puede ver que podemos detectar bordes horizontales y verticales de una imagen. Además, si compara el resultado del operador sobel con el operador Prewitt, encontrará que el operador sobel encuentra más bordes o hace que los bordes sean más visibles en comparación con el operador Prewitt.
Esto se debe a que en el operador sobel hemos asignado más peso a las intensidades de píxeles alrededor de los bordes.
Aplicar más peso a la mascarilla
Ahora también podemos ver que si aplicamos más peso a la máscara, más bordes obtendrá para nosotros. Además, como se mencionó al comienzo del tutorial, no hay coeficientes fijos en el operador sobel, por lo que aquí hay otro operador ponderado
-1 | 0 | 1 |
-5 | 0 | 5 |
-1 | 0 | 1 |
Si puede comparar el resultado de esta máscara con el de la máscara vertical de Prewitt, está claro que esta máscara dará más bordes en comparación con la de Prewitt solo porque le hemos asignado más peso a la máscara.