Ketika downsampling gambar dengan faktor bilangan bulat , metode yang jelas adalah mengatur piksel dari gambar keluaran ke rata-rata blok yang sesuai pada gambar input.
Saya ingat samar-samar setelah membaca di suatu tempat bahwa metode ini tidak optimal (maaf saya tidak ingat rinciannya)
Benarkah ada metode yang lebih baik (dan jika demikian, di mana metode di atas gagal, walaupun tampaknya "jelas" benar)? Saya tidak tahu banyak tentang pemrosesan sinyal, pertanyaan ini hanya menarik minat saya.
image-processing
sampling
Styg Oldenbaum
sumber
sumber
Jawaban:
Downsampling gambar mengurangi jumlah sampel yang dapat mewakili sinyal. Dalam hal domain frekuensi, ketika sinyal downsampled, bagian frekuensi tinggi dari sinyal akan alias dengan bagian frekuensi rendah. Ketika diterapkan pada pemrosesan gambar, hasil yang diinginkan adalah hanya mempertahankan porsi frekuensi rendah. Untuk melakukan ini, gambar asli perlu diproses terlebih dahulu (alias difilter) untuk menghapus bagian frekuensi tinggi sehingga aliasing tidak akan terjadi.
Filter digital optimal untuk menghilangkan bagian frekuensi tinggi (dengan cutoff paling tajam) adalah fungsi sinc . Alasannya adalah bahwa representasi domain frekuensi fungsi Sinc adalah 1 yang hampir konstan di seluruh wilayah frekuensi rendah, dan hampir konstan 0 di seluruh wilayah frekuensi tinggi.
Respons impuls filter sinc tidak terbatas. Filter Lanczos adalah filter sinc yang dimodifikasi yang melemahkan koefisien sinc dan memotongnya begitu nilai turun menjadi tidak signifikan.
Namun, menjadi optimal dalam domain frekuensi tidak berarti menjadi optimal di mata manusia. Ada metode upsampling dan downsampling yang tidak mematuhi transformasi linear tetapi menghasilkan hasil yang lebih baik daripada yang linear.
Berkenaan dengan pernyataan tentang , penting untuk diingat bahwa selama pengambilan sampel gambar, pilihan korespondensi koordinat antara sinyal resolusi tinggi dan sinyal resolusi rendah tidak sewenang-wenang, juga tidak cukup untuk menyelaraskannya. ke asal yang sama (0) pada garis angka nyata atau diskrit.n × n
Persyaratan minimum dalam korespondensi koordinat adalah itu
sumber
Anda benar bahwa area-rata-rata cukup dekat dengan "paling benar" yang bisa Anda dapatkan, tetapi masalahnya adalah perilaku yang tidak konsisten ketika menurunkan skala garis lebar-N yang tajam dengan faktor N. Jika lokasi garis disesuaikan modulo N, Anda akan mendapatkan garis 1-piksel yang tajam, tetapi jika kira-kira N / 2 mod N, Anda akan mendapatkan garis yang sangat kabur (lebar 2 piksel pada setengah intensitas). Ini bisa terlihat sangat buruk, dan dengan gamma nonlinear, bahkan akan menghasilkan perbedaan intensitas. (Idealnya semua resampling harus dilakukan dengan gamma yang dikoreksi untuk skala intensitas linier, tetapi dalam praktiknya hampir tidak ada yang melakukannya karena sangat mahal.)
Jika Anda ingin meningkatkan ini, Anda harus terlebih dahulu menerima kenyataan bahwa dalam beberapa kasus tidak mungkin untuk mengurangi keburaman, sehingga satu-satunya cara untuk mendapatkan hasil yang seragam adalah dengan meningkatkan keburaman. Cara yang ideal adalah menggunakan kernel gaussian dengan jari-jari lebih besar dari N / 2, daripada fungsi langkah, sebagai fungsi konvolusi dengan gambar sumber. Namun demikian, cara murah untuk menerapkan pendekatan, jika Anda sudah memiliki implementasi rata-rata area N-by-N, adalah hanya menerapkan konvolusi blur (1 / 4,1 / 2,1 / 4) ke hasil putaran bawah yang dihasilkan oleh sampel yang downsampled gambar.
sumber