IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Images Discussion :

Taille des coefficients de la décomposition en ondelette dwt2


Sujet :

Images

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 16
    Points : 16
    Points
    16
    Par défaut Taille des coefficients de la décomposition en ondelette dwt2
    Bonjour,
    Petite question sur la taille des coefficients que la fonctions dwt2 de la Wavelet tlbx produit.

    Voilà un bout de code où on charge une image de taille 256x256 et où on calcule l'approx et les détails de niveau 1 pour deux ondelettes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    clear all; 
    % Chargement de l'image 'barbara', taille 256x256
    load wbarb; clear map;
    %  Single-level discrete 2-D wavelet transform
    [CA1,CH1,CV1,CD1] = dwt2(X,'haar');
    whos
    [CA1,CH1,CV1,CD1] = dwt2(X,'db2');
    whos
    dont voici le résultat

    Name Size Bytes Class Attributes

    CA1 128x128 131072 double
    CD1 128x128 131072 double
    CH1 128x128 131072 double
    CV1 128x128 131072 double
    X 256x256 524288 double

    Name Size Bytes Class Attributes

    CA1 129x129 133128 double
    CD1 129x129 133128 double
    CH1 129x129 133128 double
    CV1 129x129 133128 double
    X 256x256 524288 double
    Pourquoi une taille de 129x129 des coefficients pour l'ondelette daubechie 2 ?

    Théoriquement cela devrait être comme celle de haar, de taille 128x128.

    De plus, en réalisant exactement le même type de décomposition mais cette fois-ci en utilisant l'outil graphique de matlab (wavemenu), on retrouve la bonne dimension :




    Après avoir cliquer sur "Full size" :



    Rien à ce sujet dans la doc de matlab, ni même sur google...

    Bien sûr même problème avec wavedec2 (décomposition sur plusieurs niveaux) qui n'est qu'une boucle sur dwt2...

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    Dans la doc de dtw2 :
    Let sx = size(X) and lf = the length of filters; then size(cA) = size(cH) = size(cV) = size(cD) = sa where sa = ceil(sx/2), if the DWT extension mode is set to symmetric padding. For the other extension modes, sa = floor((sx+lf-1)/2).
    Donc vraisemblablement, avec les résultats de ton code, dans un cas c'est la formule ceil(sx/2), et dans l'autre floor((sx+lf-1)/2) pour définir la taille de ton résultat. Ce que je ne comprends pas, c'est que tu n'as pas modifié le DWT extension mode extension mode dans ton cas, donc pour moi dans les 2 cas, il aurait dû utiliser celui par défaut, mais ça dépend peut-être du filtre utilisé.

    Dans cette discussion, dans la réponse on trouve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dwtmode('per','nodisp');
    Cela permet de préciser la façon dont doit être traité les distorsions sur les bords et de forcer à avoir une taille d'image égale à la moitié de la taille de l'image initiale. Donc tu peux essayer ce réglage avant d'appliquer tes filttres. Après je te conseille de regarder les réglages de dwtmode pour plus de renseignements :
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    Bonjour,
    Merci pour la réponse, ça marche en effet avec dwtmode.

    Le mode par défaut chez moi est :

    *******************************************************
    ** DWT Extension Mode: Symmetrization (half-point) **
    *******************************************************

    ce qui signifie que c'est floor((sx+lf-1)/2) qui s'applique et donc bien 128 pour haar et 129 pour db2 car les tailles (lf) des ondelettes varient.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    sx = size(X)
    W = dbwavf('db1'); lf = length(W)
    floor((sx+lf-1)/2)
    sx = size(X)
    W = dbwavf('db2'); lf = length(W)
    floor((sx+lf-1)/2)
     
    sx =
     
       256   256
     
     
    lf =
     
         2
     
     
    ans =
     
       128   128
     
     
    sx =
     
       256   256
     
     
    lf =
     
         4
     
     
    ans =
     
       129   129

    Donc a priori dans wavemenu ils utilisent directement le mode 'periodization'...

Discussions similaires

  1. extraction des coefficients d'ondelette
    Par marwazaa dans le forum MATLAB
    Réponses: 1
    Dernier message: 07/04/2015, 09h25
  2. Ordre des coefficients dans l'ondelette UWT
    Par maiore dans le forum Calcul scientifique
    Réponses: 0
    Dernier message: 23/06/2013, 06h17
  3. Extraction des coefficients d'ondelettes
    Par abidineb dans le forum Images
    Réponses: 0
    Dernier message: 05/02/2010, 00h04
  4. taille des coefficients d'une matrice
    Par jbollagnier dans le forum Mathématiques - Sciences
    Réponses: 4
    Dernier message: 19/03/2008, 17h57
  5. Taille des champs proportionnelle...
    Par Depteam1 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 09/08/2002, 11h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo