Tutorial zu Wavelets der 2. Generation (mit Lifting)?


10

Für einige Entrauschungs- und Entfaltungsexperimente möchte ich eine Wavelet-Transformation der 2. Generation (unter Verwendung von Hebeschritten ) auf Bilder anwenden .

Ich weiß, dass es mehrere Implementierungen gibt, aber die meisten verwenden Matlab, während ich mit OpenCV in C ++ arbeiten möchte . Da es in OpenCV 2.x keine integrierte Wavelet-Transformations-Implementierung gibt, plane ich, diese selbst zu implementieren (außerdem ist dies eine gute Übung für mich). Nach einigen Recherchen konnte ich die Originalartikel über die Transformation der 2. Generation finden, aber ich bin immer noch etwas verwirrt über die genaue Funktionsweise des Algorithmus.

Ausgehend von der Arbeit [1] von Sweldens: The Lifting Schema: eine Konstruktion von Wavelets der zweiten Generation bin ich immer noch verwirrt von der Definition der Indexmengen : Wie groß sind sie? Wie sind sie gebaut? ...K(j)

Daher meine Frage: Kennt jemand einige Ressourcen zur Wavelet-Transformation der 2. Generation (Artikel, Tutorials, Folien ...), die entweder in Form eines Tutorials vorliegen oder eine algorithmischere Ansicht bieten (anstatt eine mathematische)? , was würde mir helfen, meine eigene Implementierung zu entwerfen?

Danke im Voraus.

Verweise

Meine Hauptreferenz ist:

[1] Sweldens, W. (1998). Das Hebeschema: Eine Konstruktion von Wavelets der zweiten Generation. SIAM Journal on Mathematical Analysis, 29 (2), 511.

Und ich lerne auch von:

[2] Daubechies, I. & Sweldens, W. (1998). Das Faktorisieren von Wavelet verwandelt sich in Hebeschritte. Journal of Fourier Analysis and Applications, 4 (3), 247–269.

[3] Kovacevic, J. & Sweldens, W. (2000). Wavelet-Familien zunehmender Ordnung in beliebigen Dimensionen. Bildverarbeitung, 9 (3), 480–496. doi: 10.1109 / 83.826784


Es wäre wahrscheinlich hilfreich, wenn Sie auf die Originalarbeiten verlinken und erklären, warum Sie von ihnen verwirrt sind. Sie sagen auch, dass es viele Matlab-Implementierungen (Skriptsprache) gibt, die Sie lesen können, um eine Vorstellung davon zu bekommen, wie der Algorithmus funktioniert.
Bjoernz

Es gibt bereits C ++ - Wavelet-Bibliotheken . Wenn Sie etwas für Übungen codieren möchten, wählen Sie dann eine der neueren Multiskalentransformationen wie Beamlets, Ridgelets oder Curvelets aus, damit die Community davon profitieren kann.
Emre

@Emre: Wie bereits erwähnt, enthält OpenCV keine Wavelet-Transformation, und ich möchte keine Abhängigkeiten hinzufügen. Ich werde den Blitzwave-Code trotzdem überprüfen, um zu sehen, wie die Dinge gemacht werden. Im Moment brauche ich nur die 2. Generation. Wavelets, aber neuere Werkzeuge (beginnend mit den Curvelets) sind eine Option für spätere Arbeiten.
Sansuiso

@bjoernz: Ich habe eine genaue Frage zu einem kleinen Teil von Sweldens 'Papier hinzugefügt, die mich verwirrt.
Sansuiso

Könnten Sie bitte auf Ihre Artikel / Bücher verweisen, aus denen Sie dies lernen?
Spacey

Antworten:


2

Ich habe endlich ein Exemplar von [Ripples in Mathematics The Discrete Wavelet Transform] [1] gekauft und bin sehr zufrieden mit diesem Buch. Die Autoren erklären die DWT mit wechselnden Gesichtspunkten (Hebeschemata, Filterbankansatz, Analyse mit mehreren Auflösungen), wobei jeder dieser Gesichtspunkte seine eigenen Vorteile hat. Darüber hinaus ist das Buch implementierungsorientiert und enthält Kapitel zum Umgang mit Grenzen und zur Implementierung von Matlab / C.

Ich bin immer noch auf der Suche nach einem geeigneten Weg, um mit ungeraden Signalen umzugehen, aber Ripples hat mir einen guten Start gegeben.

[1]: http://www.control.auc.dk/~alc/ripples.html "Wellen in der Mathematik Die diskrete Wavelet-Transformation" von Arne Jensen und Anders la Cour-Harbo

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.