Implementasi matlab ada dalam jawaban ini: https://dsp.stackexchange.com/a/14201/5737
1) Rumus wikipedia sedikit terlalu umum.
2) Jika Anda mengetahui dasar-dasar transformasi Fourier maka Anda secara empiris tahu bahwa: Gambar dipandang terbentuk dengan melapiskan serangkaian gelombang sinusoidal dari berbagai frekuensi yang berorientasi pada semua jenis arah. Setiap "piksel" dalam transformasi memberi tahu kita "intensitas" gelombang tersebut. Posisi "pixel" memberi tahu kita frekuensi dan orientasi gelombang. Dalam praktiknya, seseorang hanya ingin memilih gelombang tertentu, memiliki frekuensi tertentu dan orientasi tertentu.
Jadi begitulah: Transformasi Gabor adalah salah satu dari banyak filter yang disebut band pass yang memungkinkan Anda untuk "memotong" transformasi Fourier dan mengisolasi hanya informasi spesifik. Informasi penting lainnya adalah bahwa setiap "piksel" Fourier adalah nilai kompleks (bagian nyata dan imajiner)
3) Parameter: Dua parameter sudah ditampilkan:
3.a) Frekuensi tuning , atau periode tuning , atau menentukan jenis gelombang sinus yang akan direspons oleh filter. ( atau tergantung pada implementasi spesifik) Pada dasarnya, lebih kecil berarti gelombang sinus yang lebih padat. Sebuah besar berarti gelombang yang lebih besar. dalam piksel (3, 5, 30, dll. Piksel) Jangan pergi di bawah 3 piksel atau lebih dari atau Anda mendapatkan efek buruk. adalah lebar gambar, jika gambar itu persegi. Anda menentukan ini menggunakan parameter P0 dalam kode matlab.f0P0λf=1/P0=1/λf=π/λP0P0P0W/2W
3.b) Sudut tengah. Gelombang ini dapat memiliki arah apa pun. Anda ingin memilih hanya gelombang pada sudut tertentu. Jadi, parameter kedua adalah sudut tala, atau dalam rumus Anda. Biasanya, dalam radian. Berorientasi dalam kode matlab.θ0θ
Seseorang tidak dapat mengisolasi hanya frekuensi tertentu atau orientasi tertentu. (Cari prinsip ketidakpastian dalam buku teks. Ya, mirip dengan yang ada di fisika) Tetapi orang dapat menyesuaikan berapa banyak frekuensi terdekat akan bocor. Dua parameter berikutnya menentukan bahwa:
3.c) , bandwidth frekuensi dinyatakan dalam oktaf. Nilai yang berguna, 1,5, 2, 3. Nilai yang lebih besar berarti menangkap rentang frekuensi yang lebih luas. Ada harga untuk bandpass yang lebih ketat, lokalisasi spasial yang lebih buruk. Mengapa, sekali lagi, buku teks. FBW dalam kode matlab.ΔF
3.d) sudut bandwidth. Disajikan dalam radian. atau berfungsi dengan baik. ABW dalam kode matlab.Δθπ/3π/2
Hubungan antara , dari kode matlab dan dari Wikipedia memiliki rumus tetapi tidak penting untuk memahami Gabor. lagi tidak penting untuk pemahaman dasar.ΔfΔθσ,γψ
Jadi Anda memilikinya: dari Wikipedia adalah matriks 2D angka yang berisi topeng konvolusi. Anda mengambil gambar asli, memfilternya dengan topeng konvolusi dan mendapatkan gambar lain. Gambar baru ini adalah "respons Gabor" untuk gambar asli.X
Kode matlab melakukan dua langkah ini bersama-sama. Buat filter Gabor dengan parameter yang ditentukan dan lakukan konvolusi. Hasilnya ReConv, ImConv adalah tanggapan. Setiap respons "piksel" memiliki bagian nyata dan imajiner. Jika Anda ingin menggunakan kode ini, Anda biasanya harus menghitung energi untuk respons: mana adalah bagian nyata dari respons (ReConv) dan adalah bagian imajiner (ImConv ), untuk setiap piksel.E=a2+b2−−−−−−√ab
Itu dia: 1) Bangun filter Gabor yang menetapkan
2) Lilit gambar Anda dengan filter. Anda akan mendapatkan dua nilai per setiap piksel. 3) Hitung energi dan dapatkan intensitas respons untuk setiap piksel dalam gambar asliP0,θ0,Δf,ΔθE
Intuisi lain: Misalkan Anda ingin memilih tepi yang membentang pada orientasi tegak lurus ke dan lebar tertentu 20 piksel. Anda dapat membangun filter Gabor dengan . TAKE CARE bahwa tidak ada hubungan yang sama antara dimensi tepi Anda dan parameter . Anda harus mencoba berbagai nilai dan melihat mana yang terbaik. Parameter lainnya ( ) menyentuhnya ketika Anda memiliki pengalaman menyetel dua yang pertama.π/6P0≈20,θ0=π/6,Δf=2,Δθ=pi/2P0Δf,Δθ
Semoga ini bisa membantu!
Cristi
Memperbarui
Berikut ini adalah situs yang memungkinkan Anda untuk bermain sedikit dengan parameter Gabor dan perhatikan hasilnya: http://www.cogsci.nl/pages/gabor-generator.php
Setelah melihat sekilas, freqnency dan bandwidth angle diikat sebagai "Standar Deviasi dalam piksel ... ke amplop Gauss". Parameter lainnya mudah diidentifikasi. Namun, perhatikan bahwa ada perbedaan numerik! Misalnya. fase dapat dinyatakan dalam interval 0-1 atau interval 0- .π