Saya mencoba untuk menilai kualitas beberapa metode interpolasi gambar untuk aplikasi yang melibatkan menghasilkan gambar yang dialihkan subpiksel. Saya pikir saya bisa membandingkan hasil pergeseran subpixel menggunakan semua varian interpolasi ini dengan beberapa gambar yang bergeser sempurna, tetapi mungkin tidak mungkin untuk mendapatkannya (apa yang akan dibutuhkan untuk interpolasi kemudian?).
Saya sedang berpikir tentang menggunakan pergeseran DFT + dalam domain frekuensi, dan saya tidak yakin bagaimana cara kerjanya dibandingkan dengan secara eksplisit menginterpolasi gambar (menggunakan bilinear, bicubic, dll ...). Saya yakin itu tidak mungkin menghasilkan gambar yang bergeser sempurna , tapi saya tidak bisa meletakkan jari saya di atasnya. Apakah perpindahan subpiksel dengan DFT setara dengan penerapan interpolasi dan jika demikian, yang mana? Apa bias dari nilai piksel dalam gambar yang diperoleh menggunakan metode ini? Terima kasih!
EDIT: Setelah memikirkan masalah ini, saya pikir karena FFT adalah perkiraan (bahkan lebih DFT) dari fungsi asli dalam hal harmonik (fungsi sinus), bahwa itu akan menjadi semacam interpolasi trigonometri. Saya ingat formula "Fourier series interpolasi" untuk data diskrit yang merupakan interpolasi trigonometri, tetapi tidak yakin apakah itu terhubung.
sumber
Jawaban:
DFT / FFT, ditambah menambahkan zero-padding dalam domain frekuensi, kemudian IDFT / IFFT yang lebih panjang, mengembalikan poin yang diinterpolasi. Poin-poin ini akan diinterpolasi menggunakan kernel Sinc periodik, yang merupakan interpolasi sempurna untuk data asli yang terbatas pada band di bawah setengah dari laju sampel asli. Namun, data akan ditindaklanjuti seolah-olah dibungkus melingkar, yang dapat menghasilkan hasil aneh di tepi beberapa gambar. Jadi, Anda mungkin ingin mengisi tepi sumber asli dengan pengisi warna yang bagus atau warna sebelum interpolasi.
Jika Anda melakukan upample dengan 2X (nol-pad FFT untuk menggandakan panjang sebelum IFFT), maka Anda dapat melakukan pergeseran setengah-pixel menggunakan titik interpolasi. 3X untuk pergeseran piksel ketiga, dll. Untuk pemindahan, Anda dapat membuang poin asli ditambah kelebihan titik interpolasi untuk mendapatkan ukuran yang diinginkan.
sumber
Ada beberapa wawasan utama yang Anda butuhkan untuk memahami bagaimana DFT memungkinkan Anda untuk menggeser gambar.
Pertama, teorema Fourier: Mungkin lebih mudah untuk melihat kasus kontinu (yaitu analog) terlebih dahulu. Bayangkan Anda memiliki beberapa fungsi, sebut saja g (t). Untuk kesederhanaan, katakanlah g (t) adalah rekaman audio analog, jadi ini adalah fungsi satu dimensi, yang kontinu, dan mewakili tekanan sesaat sebagai fungsi waktu.
Sekarang, g (t) adalah salah satu cara kita dapat mewakili rekaman audio kita. Lainnya adalah G (f). G (f) adalah transformasi Fourier dari g (t). Jadi, G (f) == FT (g (t)). G (f) memiliki semua informasi yang sama dengan g (t), tetapi mewakili informasi itu dalam domain frekuensi alih-alih domain waktu. Ada beberapa detail pemilih tentang Fourier Transforms, yang tidak akan saya sebutkan.
Anda dapat menganggap G (f) sebagai "distribusi frekuensi" yang terkandung dalam g (t). Jadi, jika g (t) adalah gelombang sinus (yaitu, nada murni), maka G (f) akan nol di mana-mana, kecuali pada frekuensi nada itu. Ini mungkin poin yang baik untuk menyebutkan bahwa G (f) secara umum adalah fungsi yang kompleks - yaitu mengatakan bahwa ia mengembalikan bilangan kompleks, yang dapat dianggap memiliki komponen nyata dan imajiner atau besaran dan fase.
Ok, jadi sekarang kita punya FT kontinu di bawah ikat pinggang kita.
Inilah wawasan kedua: Transformasi Fourier Diskrit adalah Transformasi Fourier sebagai sinyal sampel ke sinyal analog. Dalam hal ini, "diskrit" mengacu pada kuantisasi domain fungsi (waktu atau frekuensi), bukan jangkauannya. (Sinyal digital sampel yang Anda dapatkan dari kartu suara Anda diukur dalam domain dan rentang.)
Digital byte-stream yang Anda dapatkan dari kartu suara Anda berisi "sampel" dari sinyal kontinyu (analog) asli dari mikrofon. Jika kita mengambil DFT dari sampel g (t) kita, kita masih mendapatkan G (f). G (f), ingat, hanyalah cara berbeda untuk merepresentasikan informasi yang terkandung dalam g (t). Jika kita mematuhi teorema Nyquist , sinyal sampel g (t) berisi semua "kecerdasan" dari sinyal kontinu asli, sehingga diskrit G (f) kita harus berisi semua informasi dari sinyal kontinyu asli kita. Secara parentetis, G (f) masih merupakan fungsi yang kompleks.
Di sinilah keajaiban pergeseran sub-pixel masuk, tetapi dalam kasus ini saya akan menulis tentang menggeser sinyal audio dalam waktu kurang dari sampel, karena itu adalah hal yang sama.
Itu berarti kita dapat menggeser rekaman audio kita dalam waktu (dengan jumlah berapa pun yang kita pilih, termasuk sebagian kecil dari waktu sampel) hanya dengan memodifikasi fase G (t). Sebenarnya, pernyataan itu mungkin agak terlalu santai. Untuk sinyal sampel yang tidak dikuantisasi, fase dapat disesuaikan secara sewenang-wenang (ini adalah bagian dari alasan saya membuat perbedaan antara kuantisasi domain dan rentang sebelumnya). Namun, untuk sinyal sampel terkuantisasi (byte-stream audio kami, misalnya) ukuran langkah kuantisasi (yaitu, jumlah bit) menentukan resolusi yang dengannya kami dapat menyesuaikan fase. Ketika kita Inverse Fourier Transform G (f) (atau DIFT itu, untuk sinyal sampel ini), set sampel baru g '(t) = DIFT (G (F)) semua akan digeser dalam waktu dengan jumlah yang kita pilih.
Menerapkan ini ke piksel Anda berarti menggunakan FT 2 dimensi, bukan FT 1 dimensi yang dibahas di sini.
sumber