Tutorial tentang wavelet generasi ke-2 (dengan mengangkat)?

10

Untuk beberapa percobaan denoising dan dekonvolusi, saya ingin menerapkan transformasi wavelet generasi ke - 2 (menggunakan langkah pengangkatan ) ke gambar.

Saya tahu bahwa ada beberapa implementasi yang tersedia, tetapi kebanyakan dari mereka menggunakan matlab, sementara saya ingin bekerja di C ++ dengan OpenCV . Karena tidak ada implementasi transformasi wavelet bawaan di OpenCV 2.x, saya berencana untuk mengimplementasikannya sendiri (ditambah, itu akan menjadi latihan yang baik untuk saya). Setelah beberapa penelitian, saya dapat menemukan artikel asli tentang transformasi generasi ke-2, tapi saya masih agak bingung tentang cara tepatnya algoritma bekerja.

Mengambil referensi utama makalah [1] oleh Sweldens: Skema Lifting: sebuah konstruksi wavelet generasi kedua , saya masih bingung dengan definisi set indeks : berapa ukurannya? bagaimana mereka dibangun? ...K(j)

Oleh karena itu pertanyaan saya: apakah ada yang tahu tentang beberapa sumber daya tentang transformasi wavelet generasi ke-2 (makalah, tutorial, slide ...) yang baik dalam bentuk tutorial-like , atau yang memberikan tampilan yang lebih algoritmik (daripada yang matematika) , yang akan membantu saya merancang implementasi saya sendiri?

Terima kasih sebelumnya.

Referensi

Referensi utama saya adalah:

[1] Sweldens, W. (1998). Skema pengangkatan: Konstruksi wavelet generasi kedua. Jurnal SIAM tentang Analisis Matematika, 29 (2), 511.

Dan saya juga belajar dari:

[2] Daubechies, I., & Sweldens, W. (1998). Anjak piutang berubah menjadi langkah pengangkatan. Jurnal analisis dan aplikasi Fourier, 4 (3), 247-269.

[3] Kovacevic, J., & Sweldens, W. (2000). Keluarga wavelet dari peningkatan urutan dalam dimensi sewenang-wenang. Pemrosesan Gambar, 9 (3), 480–496. doi: 10.1109 / 83.826784

sansuiso
sumber
Mungkin akan membantu, jika Anda menautkan ke kertas asli dan menjelaskan, mengapa Anda bingung dengan mereka. Juga, Anda berkata, bahwa ada banyak implementasi matlab (bahasa scripting), yang bisa Anda baca untuk mendapatkan ide, bagaimana algoritma bekerja.
bjoernz
Sudah ada pustaka wavelet C ++ . Jika Anda akan membuat kode sesuatu untuk latihan, mengapa Anda tidak memilih salah satu dari transformasi multiskala yang lebih baru seperti balok, ridgelet, atau kurva agar komunitas dapat memperoleh manfaat?
Emre
@ Em: Seperti yang dikatakan sebelumnya, OpenCV tidak menyertakan transformasi wavelet, dan saya tidak perlu menambahkan dependensi. Saya akan memeriksa kode Blitzwave untuk melihat bagaimana hal-hal dilakukan. Untuk saat ini, saya hanya perlu gen ke-2. wavelet, tetapi alat yang lebih baru (dimulai dengan curvelet) adalah opsi untuk pekerjaan selanjutnya
sansuiso
@Bjoernz: Saya menambahkan pertanyaan yang tepat tentang sebagian kecil kertas Sweldens yang membingungkan saya.
sansuiso
Bisakah Anda merujuk artikel / buku yang Anda pelajari ini?
Spacey

Jawaban:

2

Saya akhirnya membeli salinan [Ripples in Mathematics The Discrete Wavelet Transform] [1], dan saya sangat senang dengan buku ini. Para penulis menjelaskan DWT dengan sudut pandang bolak-balik (skema pengangkatan, pendekatan bank filter, analisis multi-resolusi), di mana masing-masing sudut pandang ini memiliki kelebihannya sendiri. Selain itu, buku ini berorientasi pada implementasi, dengan bab-bab tentang penanganan batas dan implementasi matlab / C.

Saya masih mencari cara yang tepat untuk menangani sinyal berukuran aneh, tetapi riak memberi saya awal yang baik.

[1]: http://www.control.auc.dk/~alc/ripples.html "Riak dalam Matematika Transformasi Wavelet Diskrit", oleh Arne Jensen dan Anders la Cour-Harbo

sansuiso
sumber