Tutoriel sur les ondelettes de 2ème génération (avec lifting)?

10

Pour certaines expériences de débruitage et de déconvolution, j'aimerais appliquer une transformée en ondelettes de 2e génération (en utilisant des étapes de levage ) aux images.

Je sais qu'il existe plusieurs implémentations disponibles, mais la plupart d'entre elles utilisent matlab, alors que je veux travailler en C ++ avec OpenCV . Puisqu'il n'y a pas d'implémentation de transformation d'ondelettes intégrée dans OpenCV 2.x, je prévois de l'implémenter moi-même (en plus, cela fera un bon exercice pour moi). Après quelques recherches, j'ai pu trouver les articles originaux sur la transformation de 2e génération, mais je suis toujours un peu confus quant au fonctionnement exact de l'algorithme.

Prenant pour référence principale l'article [1] de Sweldens: Le schéma de levage: une construction d'ondelettes de deuxième génération , je suis toujours confus par la définition des ensembles d'index : quelle est leur taille? comment sont-ils construits? ...K(j)

D'où ma question: quelqu'un connaît-il des ressources sur la transformation en ondelettes de 2e génération (articles, tutoriels, diapositives ...) qui sont soit sous forme de tutoriel , soit qui fournissent une vue plus algorithmique (plutôt que mathématique) , ce qui m'aiderait à concevoir ma propre implémentation?

Merci d'avance.

Références

Ma référence principale est:

[1] Sweldens, W. (1998). Le schéma de levage: une construction d'ondelettes de deuxième génération. SIAM Journal on Mathematical Analysis, 29 (2), 511.

Et j'apprends aussi de:

[2] Daubechies, I. et Sweldens, W. (1998). L'affacturage en ondelettes se transforme en étapes de levage. Journal of Fourier analysis and applications, 4 (3), 247-269.

[3] Kovacevic, J. et Sweldens, W. (2000). Familles d'ondelettes d'ordre croissant en dimensions arbitraires. Traitement d'image, 9 (3), 480–496. doi: 10.1109 / 83.826784

sansuiso
la source
Il serait probablement utile, si vous établissez un lien avec les articles originaux et expliquez, pourquoi vous êtes confus par eux. Vous dites également qu'il existe de nombreuses implémentations de matlab (langage de script) que vous pouvez lire pour vous faire une idée du fonctionnement de l'algorithme.
bjoernz
Il existe déjà des bibliothèques d'ondelettes C ++ . Si vous allez coder quelque chose pour l'exercice, pourquoi ne pas choisir l'une des transformations multi-échelles les plus récentes comme les beamlets, les crêtes ou les curvelets pour que la communauté puisse en bénéficier?
Emre
@Emre: Comme dit précédemment, OpenCV n'inclut pas de transformation en ondelettes, et je ne veux pas ajouter de dépendances. Je vais quand même vérifier le code Blitzwave pour voir comment les choses se font. Pour l'instant, je n'ai besoin que de la 2e génération. ondelettes, mais des outils plus récents (à commencer par les curvelets) sont une option pour un travail ultérieur.
sansuiso
@bjoernz: J'ai ajouté une question précise à propos d'une petite partie du papier de Sweldens qui m'embrouille.
sansuiso
Pourriez-vous s'il vous plaît faire référence à vos articles / livres dont vous apprenez cela?
Spacey

Réponses:

2

J'ai enfin acheté un exemplaire de [Ripples in Mathematics The Discrete Wavelet Transform] [1], et je suis très content de ce livre. Les auteurs expliquent le DWT avec des points de vue alternés (schémas de levage, approche des bancs de filtres, analyse multi-résolution), où chacun de ces points de vue a ses propres avantages. De plus, le livre est orienté vers l'implémentation, avec des chapitres sur la gestion des limites et les implémentations matlab / C.

Je cherche toujours une bonne façon de gérer les signaux de taille étrange, mais Ripples m'a donné un bon départ.

[1]: http://www.control.auc.dk/~alc/ripples.html "Ripples in Mathematics The Discrete Wavelet Transform", par Arne Jensen et Anders la Cour-Harbo

sansuiso
la source