Tutorial su wavelet di seconda generazione (con sollevamento)?


10

Per alcuni esperimenti di denoising e deconvoluzione, vorrei applicare una trasformazione wavelet di seconda generazione (usando i passaggi di sollevamento ) alle immagini.

So che ci sono diverse implementazioni disponibili, ma la maggior parte usa matlab, mentre voglio lavorare in C ++ con OpenCV . Poiché non esiste un'implementazione di trasformazione wavelet integrata in OpenCV 2.x, ho intenzione di implementarlo da solo (in più, farà un buon esercizio per me). Dopo alcune ricerche, sono stato in grado di trovare gli articoli originali sulla trasformazione di seconda generazione, ma sono ancora un po 'confuso circa il modo esatto in cui funziona l'algoritmo.

Prendendo come riferimento principale il documento [1] di Sweldens: The Lifting Schema: una costruzione di wavelet di seconda generazione , sono ancora confuso dalla definizione dei set di indici : qual è la loro dimensione? come sono costruiti? ...K(j)

Da qui la mia domanda: qualcuno conosce alcune risorse sulla trasformazione wavelet di seconda generazione (documenti, tutorial, diapositive ...) che sono in una forma simile a un tutorial o che forniscono una visione più algoritmica (piuttosto che matematica) , che mi aiuterebbe a progettare la mia implementazione?

Grazie in anticipo.

Riferimenti

Il mio riferimento principale è:

[1] Sweldens, W. (1998). Lo schema di sollevamento: una costruzione di wavelet di seconda generazione. SIAM Journal on Mathematical Analysis, 29 (2), 511.

E sto anche imparando da:

[2] Daubechies, I., & Sweldens, W. (1998). Il wavelet fattoriale si trasforma in fasi di sollevamento. Journal of Fourier analisi e applicazioni, 4 (3), 247–269.

[3] Kovacevic, J., & Sweldens, W. (2000). Famiglie wavelet di ordine crescente in dimensioni arbitrarie. Elaborazione immagine, 9 (3), 480–496. DOI: 10,1109 / 83,826,784 mila


Probabilmente sarebbe utile, se ti colleghi ai documenti originali e spieghi, perché sei confuso da loro. Inoltre, dici che ci sono molte implementazioni di matlab (linguaggio di scripting) che potresti leggere per avere un'idea di come funziona l'algoritmo.
bjoernz,

Esistono già librerie wavelet C ++ . Se hai intenzione di programmare qualcosa per l'esercizio, perché non scegli una delle più recenti trasformazioni multiscala come beamlet, ridgelet o curvelet in modo che la community possa trarne vantaggio?
Emre,

@Emre: come detto prima, OpenCV non include una trasformazione wavelet, e non bacchetta per aggiungere dipendenze. Controllerò comunque il codice Blitzwave per vedere come vengono fatte le cose. Per ora, ho solo bisogno della seconda generazione. wavelet, ma strumenti più recenti (a partire dai curvelet) sono un'opzione per i lavori successivi.
sansuiso,

@bjoernz: ho aggiunto una domanda precisa su una piccola parte del documento di Sweldens che mi confonde.
sansuiso,

Potresti fare riferimento ai tuoi articoli / libri da cui stai imparando questo?
Spacey,

Risposte:


2

Ho finalmente acquistato una copia di [Ripples in Mathematics The Discrete Wavelet Transform] [1], e sono molto contento di questo libro. Gli autori spiegano il DWT con punti di vista alternati (schemi di sollevamento, approccio alle banche filtro, analisi multi-risoluzione), dove ciascuno di questi punti di vista ha i suoi vantaggi. Inoltre, il libro è orientato all'implementazione, con capitoli sulla gestione dei confini e sulle implementazioni di matlab / C.

Sto ancora cercando un modo corretto per gestire segnali di dimensioni strane, ma Ripples mi ha dato un buon inizio.

[1]: http://www.control.auc.dk/~alc/ripples.html "Increspature in matematica La discreta trasformazione delle onde", di Arne Jensen e Anders la Cour-Harbo

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.