Operatore Prewitt

L'operatore Prewitt viene utilizzato per il rilevamento dei bordi in un'immagine. Rileva due tipi di bordi

  • Bordi orizzontali
  • Bordi verticali

I bordi vengono calcolati utilizzando la differenza tra le intensità dei pixel corrispondenti di un'immagine. Tutte le maschere utilizzate per il rilevamento dei bordi sono note anche come maschere derivate. Perché, come abbiamo affermato molte volte in questa serie di tutorial, quell'immagine è anche un segnale, quindi i cambiamenti in un segnale possono essere calcolati solo usando la differenziazione. Ecco perché questi operatori sono anche chiamati come operatori derivati ​​o maschere derivate.

Tutte le maschere derivate dovrebbero avere le seguenti proprietà:

  • Il segno opposto dovrebbe essere presente nella maschera.
  • La somma della maschera dovrebbe essere uguale a zero.
  • Più peso significa più rilevamento dei bordi.

L'operatore Prewitt ci fornisce due maschere, una per rilevare i bordi in direzione orizzontale e un'altra per rilevare i bordi in direzione verticale.

Direzione verticale

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

Sopra la maschera troverà i bordi in direzione verticale ed è perché la colonna di zeri in direzione verticale. Quando convolgi questa maschera su un'immagine, ti darà i bordi verticali in un'immagine.

Come funziona

Quando applichiamo questa maschera sull'immagine, i bordi verticali prominenti. Funziona semplicemente come una derivata del primo ordine e calcola la differenza delle intensità dei pixel in una regione del bordo. Poiché la colonna centrale è pari a zero, non include i valori originali di un'immagine ma calcola piuttosto la differenza dei valori dei pixel destro e sinistro attorno a quel bordo. Ciò aumenta l'intensità del bordo e viene migliorata rispetto all'immagine originale.

Direzione orizzontale

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

La maschera sopra troverà i bordi in direzione orizzontale ed è perché quella colonna di zeri è in direzione orizzontale. Quando si convolge questa maschera su un'immagine, i bordi orizzontali risaltano nell'immagine.

Come funziona

Questa maschera evidenzierà i bordi orizzontali di un'immagine. Funziona anche sul principio della maschera sopra e calcola la differenza tra le intensità dei pixel di un bordo particolare. Poiché la riga centrale della maschera è composta da zeri, non include i valori originali del bordo nell'immagine ma calcola piuttosto la differenza delle intensità dei pixel sopra e sotto del bordo particolare. Aumentando così l'improvviso cambio di intensità e rendendo il bordo più visibile. Entrambe le maschere di cui sopra seguono il principio della maschera derivata. Entrambe le maschere hanno segno opposto e la somma di entrambe le maschere è uguale a zero. La terza condizione non sarà applicabile in questo operatore poiché entrambe le maschere di cui sopra sono standardizzate e non è possibile modificare il valore in esse.

Ora è il momento di vedere queste maschere in azione:

Immagine di esempio

Di seguito è un'immagine di esempio su cui applicheremo sopra due maschere una alla volta.

Dopo aver applicato la maschera verticale

Dopo aver applicato la maschera verticale sull'immagine di esempio sopra, si otterrà l'immagine seguente. Questa immagine contiene bordi verticali. Puoi giudicarlo più correttamente confrontandolo con l'immagine dei bordi orizzontali.

Dopo aver applicato la maschera orizzontale

Dopo aver applicato la maschera orizzontale sull'immagine di esempio sopra, si otterrà l'immagine seguente.

Confronto

Come puoi vedere che nella prima immagine su cui applichiamo la maschera verticale, tutti i bordi verticali sono più visibili dell'immagine originale. Allo stesso modo nella seconda immagine abbiamo applicato la maschera orizzontale e di conseguenza sono visibili tutti i bordi orizzontali. Quindi in questo modo puoi vedere che possiamo rilevare i bordi orizzontali e verticali di un'immagine.