Derivare le equazioni di Sobel da derivati


10

Molti siti offrono agli operatori di Sobel la maschera di convoluzione per uniformare un'immagine. Tuttavia, non ho trovato un singolo sito che descriva come derivare gli operatori dai primi derivati ​​parziali. Se qualcuno può spiegare la derivazione, lo apprezzerei molto.

Risposte:


3

L'operatore Sobel è un'approssimazione della derivata nella dimensione X seguita da un semplice operatore di livellamento nella dimensione Y. (O derivata nella dimensione Y e quindi levigata in X).

Considera un segnale monodimensionale . La derivata di , può essere scritta come:f(t)f(t)df(t)/dt

limΔ0f(t+Δ)f(tΔ)2Δ

Questa è chiamata la formula della differenza centrata .

Ma con un segnale discreto il più piccolo Δ che hai a disposizione è la distanza tra i campioni, quindi lo usi come approssimazione del limite.

Possiamo vedere quanto sia approssimativa (o buona) un'approssimazione osservando cosa fa a un segnale esponenziale complesso . Il vero derivato darebbe . L'approssimazione dà così estremamente accurato con le basse frequenze ( near 0), ma sempre più impreciso quando avvicina alla frequenza di Nyquist (eωitωieωit

eωi(t+1)eωi(t1)2=eωieωiteωieωit2=eωieωi2eωit=isin(ω)eωit
ωωωπ). Questo è il meglio che hai intenzione di fare con tre campioni. Ha anche il vantaggio di attenuare eccessivamente la risposta alle alte frequenze piuttosto che amplificare eccessivamente.

Ora facciamo un po 'di smoothing nella dimensione Y. Vogliamo qualcosa che utilizza solo 3 punti e il meglio che otterrai sarà . Questo filtro ha una risposta in frequenza: che passa senza problemi dal passaggio delle basse frequenze alle alte frequenze completamente attenuanti.14f(tΔ)+12f(t)+14f(t+Δ)

14eωi(tΔ)+12eωit+14eωi(t+Δ)=12(1+eωiΔ+eωiΔ2)eωit=12(1+cosω)eωit

Quindi contorti l'approssimazione derivata nella dimensione X con quella più liscia nella dimensione Y e otterrai il kernel:

18[101202101].
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.