Apa yang ditunjukkan oleh domain frekuensi dalam hal gambar?


110

Saya baru belajar tentang domain frekuensi dalam gambar.

Saya dapat memahami spektrum frekuensi jika terjadi gelombang. Ini menunjukkan frekuensi apa yang ada dalam gelombang. Jika kita menggambar spektrum frekuensi , kita mendapatkan sinyal impuls di dan . Dan kita dapat menggunakan filter yang sesuai untuk mengekstrak informasi tertentu.- f + fcos(2πft)f+f

Tetapi apa arti spektrum frekuensi dalam hal gambar? Ketika kami mengambil FFT dari sebuah gambar di OpenCV, kami mendapatkan gambar yang aneh. Apa yang ditunjukkan gambar ini? Dan apa aplikasinya?

Saya membaca beberapa buku, tetapi mereka memberikan banyak persamaan matematika daripada implikasi fisik. Jadi, adakah yang bisa memberikan penjelasan sederhana tentang domain frekuensi dalam gambar dengan aplikasi sederhana dalam pemrosesan gambar?


5
Cara terbaik untuk memahami apa yang dilakukan transformasi adalah dengan bermain-main dengan memberi makan input sederhana ke transformasi terbalik .
endolith

1
Lihat juga penjelasan menarik ini oleh Steve Eddins blogs.mathworks.com/steve/2009/12/04/…
Alessandro Jacopson

@endolith Ya! Anda perlu pengetahuan tentang domain terlebih dahulu untuk sepenuhnya memahami apa yang terjadi dan mengapa itu terjadi ..
SIslam

Sayang domain frekuensi gambar mewakili intensitas daya dalam watt sehubungan dengan frekuensi tertentu dalam hertiz seperti (komponen dc, frekuensi rendah dan frekuensi tinggi)
mntaser

Jawaban:


93

Tetapi apa arti spektrum frekuensi dalam hal gambar?

"Persamaan matematika" itu penting, jadi jangan lewatkan semuanya. Tetapi FFT 2d juga memiliki interpretasi yang intuitif. Sebagai ilustrasi, saya telah menghitung FFT terbalik dari beberapa contoh gambar:

masukkan deskripsi gambar di sini

Seperti yang Anda lihat, hanya satu piksel yang diatur dalam domain frekuensi. Hasil dalam domain gambar (saya hanya menampilkan bagian yang sebenarnya) adalah "pola cosinus diputar" (bagian imajiner akan menjadi sinus yang sesuai).

Jika saya menetapkan piksel berbeda di domain frekuensi (di perbatasan kiri):

masukkan deskripsi gambar di sini

Saya mendapatkan pola frekuensi 2d yang berbeda.

Jika saya menetapkan lebih dari satu piksel dalam domain frekuensi:

masukkan deskripsi gambar di sini

Anda mendapatkan jumlah dua cosinus.

Jadi seperti gelombang 1d, yang dapat direpresentasikan sebagai jumlah sinus dan cosinus, gambar 2d apa pun dapat direpresentasikan (secara longgar) sebagai jumlah "sinus dan cosinus yang diputar", seperti ditunjukkan di atas.

ketika kita mengambil fft dari suatu gambar dalam OpenV, kita mendapatkan gambar yang aneh. Apa yang ditunjukkan gambar ini?

Ini menunjukkan amplitudo dan frekuensi sinus / cosinus yang, ketika ditambahkan, akan memberi Anda gambar asli.

Dan apa aplikasinya?

Ada terlalu banyak untuk menyebutkan semuanya. Korelasi dan konvolusi dapat dihitung dengan sangat efisien menggunakan FFT, tetapi itu lebih merupakan optimasi, Anda tidak "melihat" pada hasil FFT untuk itu. Ini digunakan untuk kompresi gambar, karena komponen frekuensi tinggi biasanya hanya noise.


3
dapatkah Anda menentukan bagian frekuensi tinggi dan mana bagian frekuensi rendah dalam gambar domain frekuensi?
Abid Rahman K

4
@arkiaz: Pada gambar yang saya tunjukkan, frekuensi tertinggi adalah di tengah gambar, frekuensi terendah (yaitu rata-rata gambar input) adalah piksel kiri atas dalam hasil FFT. Itulah yang diberikan oleh sebagian besar implementasi FFT. Jika Anda menampilkan hasil FFT, biasanya memindahkan frekuensi terendah ke tengah gambar yang ditampilkan.
Niki Estner

1
@Mohammad: Saya telah menggunakan InverseFourierfungsi Mathematica . Bukankah oktaf / matlab ifft2melakukan hal yang sama?
Niki Estner

1
@ Jimclay Untuk gambar berwarna, saya benar-benar akan merekomendasikan menggunakan domain YUV . Y = intensitas absolut dan UV = warna. Bahkan untuk gambar berwarna, sebagian besar informasi yang Anda minati adalah bagian intensitas gambar. Anda menggunakan semua alat matematika yang sama, hanya ingat untuk mengubah kembali.
Atav32

4
Ini akan menjadi bagus sebagai animasi, seperti memindahkan titik dan menunjukkan bagaimana gelombang mengubah lebar dan sudut
endolith

29

Saya pikir ini dimasukkan dengan sangat baik dalam "panduan DSP" yang terkenal ( bab 24, bagian 5 ):

Analisis Fourier digunakan dalam pemrosesan gambar dengan cara yang hampir sama dengan sinyal satu dimensi. Namun, gambar tidak memiliki informasi yang dikodekan dalam domain frekuensi, membuat teknik ini jauh kurang berguna. Misalnya, ketika transformasi Fourier diambil dari sinyal audio, bentuk gelombang domain waktu yang membingungkan diubah menjadi spektrum frekuensi yang mudah dipahami.

Sebagai perbandingan, mengambil transformasi Fourier dari suatu gambar mengubah informasi langsung dalam domain spasial menjadi bentuk acak dalam domain frekuensi. Singkatnya, jangan berharap transformasi Fourier membantu Anda memahami informasi yang disandikan dalam gambar.

Jadi, tentu saja, ada beberapa struktur dan makna di balik pola yang tampaknya acak diperoleh dengan mengambil DFT dari gambar yang khas (seperti contoh di bawah), tetapi itu tidak dalam bentuk bahwa otak manusia siap untuk memahami secara intuitif, setidaknya mengenai persepsi visual.

Imgur

Berikut ini adalah eksposisi menarik dan cukup mudah dibaca dari apa yang terkandung dalam transformasi Fourier gambar, dan bagaimana hal itu dapat ditafsirkan. Ini memiliki serangkaian gambar yang membuatnya cukup jelas apa korespondensi antara Fourier-transformed dan gambar asli.

sunting: lihat juga halaman ini , yang menunjukkan — mendekati akhir — bagaimana sebagian besar informasi penting yang dipersepsikan dari suatu gambar disimpan dalam komponen fase (sudut) dari representasi frekuensi.

sunting 2: contoh lain dari arti fase dan besarnya dalam representasi Fourier: "Bagian 3.4.1, Pentingnya fase dan besarnya" buku teks TU Delft " Fundamentals of Image Processing " menunjukkan hal ini dengan sangat jelas:

Imgur


Hei! Saya mencoba mengikuti tautan kedua dalam pertanyaan Anda ( "eksposisi lain yang menarik dan cukup mudah dibaca ..." ) tetapi tautannya tidak berfungsi. Saya juga mencoba tautan yang disediakan di komentar, tetapi tidak berhasil. Bisakah Anda menemukan dan mengedit tautan yang berfungsi?
Penelope

@penelope Anda adalah orang kedua yang melihat masalah dengan tautan (lihat komentar saya sebelumnya). Halaman itu tampaknya tidak stabil, memang. Seperti yang saya katakan sebelumnya, saya akan mengganti tautan dengan versi Web Archive. Terima kasih telah menunjukkan ini!
Waldyrious

1
Sebenarnya, contoh dan penjelasan di tautan (akhirnya berfungsi) sangat bagus :)
penelope

12

Gelombang adalah gelombang satu dimensi; itu hanya tergantung pada . Gelombang adalah gelombang dua dimensi. Itu tergantung pada dan . Seperti yang Anda lihat, Anda memiliki dua frekuensi, di kedua arah.f(t)=cos(ωt)tf(x,y)=cos(ωx+ψy)xy

Oleh karena itu, transformasi fourier (FFT) dari akan memberi Anda , seperti halnya FFT dari memberi Anda . Dan jika input Anda adalah fungsi menjumlahkan cosinus 2D, maka 2D FFT Anda akan menjadi jumlah frekuensi dari cosinus tersebut - lagi-lagi analog langsung dari FFT 1D.cos(ωx+ψy)ω,ψcos(ωx)ω


10

Mungkin perlu dicatat bahwa Analisis Fourier adalah kasus khusus dari konsep yang disebut fungsi ortogonal . Ide dasarnya adalah Anda memecah sinyal yang rumit menjadi superposisi linier dari fungsi "basis" yang lebih sederhana. Anda dapat melakukan pemrosesan atau analisis pada fungsi dasar dan kemudian menjumlahkan hasil untuk fungsi dasar untuk mendapatkan hasil untuk sinyal asli.

Agar ini berfungsi ada persyaratan matematika tertentu untuk fungsi dasar, yaitu mereka idealnya membentuk basis ortonormal. Dalam kasus Fourier Transform, fungsi dasarnya adalah eksponensial yang kompleks. Namun, ada banyak fungsi lain yang bisa digunakan untuk itu juga.


Itu benar. Apa jenis fungsi basis lain yang ada? Saya berpikir daubechies wavelet, tetapi apakah ada yang lain juga? Apa yang membedakan mereka?
Spacey

Mungkin yang paling dikenal adalah polinomial; representasi fungsi sebagai seperangkat polinomial dikenal sebagai serie Taylor -nya . Serie ini mudah dihitung dari fungsi turunannya.
MSalters

2
Salah satu cara untuk menemukan fungsi dasar adalah menerapkan Analisis Komponen Utama . 'Gambar-eigen' yang dihasilkan seringkali memiliki tampilan yang lebih intuitif dari manusia daripada fungsi dosa / cos. Sebagai contoh, lihat Eigenfaces . Domain frekuensi masih relevan untuk persepsi (mata / otak kita memiliki detektor tepi yang peka terhadap frekuensi, terutama ketika gerakan terlibat); fungsi dasarnya tidak begitu berarti seperti gambar.
Dan Bryant

PCA adalah teknik perhitungan dasar yang bagus yang dipahami secara luas, tetapi ada banyak lainnya yang membuat asumsi berbeda tentang bagaimana data dihasilkan; Independent Component Analysis (ICA) adalah salah satu contoh populer. Sedikit lebih jauh, ada algoritma untuk pembelajaran fungsi dasar generik menggunakan pengkodean jarang (misalnya J Mairal et al., "Pembelajaran kamus online untuk pengkodean jarang," ICML 2009), dan kemudian pendekatan "fitur pembelajaran" yang dikembangkan oleh jaring dalam orang-orang.
lmjohns3

1
Mengapa fungsinya harus ortogonal?
quantum231

8

Dalam gambar, peningkatan frekuensi dikaitkan dengan transisi yang lebih cepat dalam kecerahan atau warna. Selain itu, noise biasanya tertanam di ujung spektrum yang tinggi, sehingga penyaringan low-pass dapat digunakan untuk pengurangan noise.


1
Jadi maksud Anda transisi tiba-tiba kadang-kadang dianggap sebagai kebisingan?
Abid Rahman K

1
Ya kadang kadang. Contoh umum termasuk kebisingan nyamuk (dering di sekitar tepi), kebisingan blok JPEG di tepi makroblok dan, tentu saja, biji-bijian. Pertimbangkan gambar gradien sederhana. Menambahkan gandum ke gambar ini meningkatkan konten frekuensi tinggi dengan memperkenalkan transisi kecil di seluruh gambar.
Emre

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.