Operador de Prewitt

El operador Prewitt se utiliza para la detección de bordes en una imagen. Detecta dos tipos de aristas

  • Bordes horizontales
  • Bordes verticales

Los bordes se calculan utilizando la diferencia entre las intensidades de píxeles correspondientes de una imagen. Todas las máscaras que se utilizan para la detección de bordes también se conocen como máscaras derivadas. Porque, como hemos dicho muchas veces antes en esta serie de tutoriales, la imagen también es una señal, por lo que los cambios en una señal solo se pueden calcular mediante diferenciación. Entonces, es por eso que estos operadores también se denominan operadores derivados o máscaras derivadas.

Todas las máscaras derivadas deben tener las siguientes propiedades:

  • El signo opuesto debe estar presente en la máscara.
  • La suma de la máscara debe ser igual a cero.
  • Más peso significa más detección de bordes.

El operador Prewitt nos proporciona dos máscaras una para detectar bordes en dirección horizontal y otra para detectar bordes en dirección vertical.

Dirección vertical

-1 0 1
-1 0 1
-1 0 1

La máscara de arriba encontrará los bordes en dirección vertical y es porque la columna de ceros en dirección vertical. Cuando convierta esta máscara en una imagen, le dará los bordes verticales en una imagen.

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. Esto aumenta la intensidad del borde y se mejora comparativamente con la imagen original.

Dirección horizontal

-1 -1 -1
0 0 0
1 1 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.

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. Ambas máscaras anteriores siguen el principio de máscara derivada. Ambas máscaras tienen el signo opuesto y ambas máscaras suman cero. La tercera condición no será aplicable en este operador ya que las dos máscaras anteriores están estandarizadas y no podemos cambiar el valor en ellas.

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. Esta imagen contiene bordes verticales. Puede juzgarlo más correctamente comparándolo con la imagen de los bordes horizontales.

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.