Turunkan persamaan Sobel dari derivatif

10

Banyak situs memberikan operator Sobel sebagai topeng konvolusi untuk menghaluskan gambar. Namun, saya belum menemukan satu situs yang menjelaskan bagaimana Anda dapat menurunkan operator dari turunan pertama parsial. Jika ada yang bisa menjelaskan derivasi itu, saya akan sangat menghargainya.

Quanquan Liu
sumber

Jawaban:

3

Operator Sobel adalah perkiraan turunan dalam dimensi X diikuti oleh operator smoothing sederhana dalam dimensi Y. (Atau turunan dalam dimensi Y dan kemudian dihaluskan dalam X).

Pertimbangkan sinyal satu dimensi . Turunan dari , dapat ditulis sebagai:f(t)f(t)df(t)/dt

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

Ini disebut rumus perbedaan terpusat .

Tetapi dengan sinyal diskrit, Delta terkecil yang ΔAnda miliki adalah jarak antar sampel, jadi Anda menggunakannya sebagai perkiraan batas.

Kita dapat melihat seberapa buruk (atau baiknya) perkiraan itu dengan melihat apa yang dilakukannya terhadap sinyal eksponensial kompleks . Turunan sebenarnya akan memberikan . Perkiraannya memberikan sangat sangat akurat dengan frekuensi rendah ( mendekati 0), tetapi semakin tidak akurat karena mendekati frekuensi 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
ωωωπ). Ini adalah tentang yang terbaik yang akan Anda lakukan dengan tiga sampel. Ini juga memiliki keuntungan dari menipiskan respon frekuensi tinggi daripada over-memperkuat.

Sekarang mari kita lakukan perataan dalam dimensi Y. Kami menginginkan sesuatu yang hanya menggunakan 3 poin, dan yang terbaik yang akan Anda dapatkan adalah . Filter ini memiliki respons frekuensi: yang dengan lancar bertransisi dari melewatkan frekuensi rendah menjadi benar-benar melemahkan frekuensi tinggi.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

Jadi berbelit-belit perkiraan turunan dalam dimensi X dengan lebih halus di dimensi Y dan Anda mendapatkan kernel:

18[101202101].
Logika Pengembaraan
sumber