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 :

Haar 2d approximation


Sujet :

Images

  1. #1
    Membre extrêmement actif
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Points : 858
    Points
    858
    Par défaut Haar 2d approximation
    Je veux calculer le niveau du bruit dans une image en utilisant des coefficients fourrier wavelet haar 2d approximation.

    Voila tous le projet attache dans une archive.rar dans les pieces jointes.

    Ma question:

    Quel est le contenu du perform_wavelet_transf fonction? C'est une fonction qui est utilise et qui me manque.

    photo_grey c'est l'image grayscale que je fais le test pour savoir les coefficients wavelet.

    C'est le dernier example de ce lien (example5)

    http://www.ceremade.dauphine.fr/~pey...rier_wavelets/


    Exercice 5: (the solution is exo5.m) Perform non-linear approximation with M=n^2/16 wavelet coefficients by keeping M best coefficients.

    Il me donne l'erreur suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ??? Undefined function or variable 'f'.
     
    Error in ==> haar_aprox at 2
    fw = perform_wavelet_transf(f,Jmin,+1);
    J'ai attache encore une fois l'archive si vous mettez tous le fichiers matlab dans le path et vous executez haar_aprox dans command window vous verrez l'erreur.

    Je veux seulement obtenir le meme effet que pour l'image lena mais au lieu c'est photo_grey (ma photo de test).

    J'espere quelqu'un m'aider pour trouver la fonction perform_wavelet_transform parce que j'ai pas trouve la fonction qu'il me faut pour applier haar2d approximation.

  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,

    cette fois, ce n'est pas un fichier qui manque, mais tu n'as pas définit la variable f (d'où le message d'erreur), ni la variable Jmin qui sont des variables d'entrées de la fonction perform_wavelet_transf.

    Etant donné les infos sur la page que tu cites, tu peux essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    f = rescale( load_image(name,n) );
    Jmin = 0;
    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 extrêmement actif
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Points : 858
    Points
    858
    Par défaut
    Merci beaucoup magelan!

    J'ai besoin maintenant de la fonction perform_wavelet_transf (perform_wavelet_transf.m script) et j'ai pas compris qui sont clamp, snr.

    Snr c'est le rapport signal noise qui decrit exactement le blur de mon image qui est grayscale ca c'est clair mais j'ai pas compris les notations dans le code clamp , snr .

    J'ai mis des commentaire en anglais j'espere que ca ne te deranges pas.

    Voila le code:

    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
     
    % photo_grey is the name of my grayscale image
     
    n = 256; % grayscale image has 256 levels of gray
    f = rescale(load_image('photo_grey',n) );
    Jmin = 0;
     
    m = n^2/16; % non-linear approximation best fit for wavelet coefficient of a grayscale image
    fw = perform_wavelet_transf(f,Jmin,+1);
    a = sort(abs(fw(:))); 
    a = a(n^2:-1:1);
    T = a(m+1); % T threshold for image
    fw1 = fw .* (abs(fw)>T); % T is threshold we see those frequencies above threshold 
    % also we eliminate for coefficient wavelet amplitude which equals 0
    f1 = perform_wavelet_transf(fw1,Jmin,-1);
    % display
    clf;
    imageplot( clamp(f), 'photo_grey', 1,2,1);
    % SNR describe in fact the degree of how an image is blur and has noise
    % an image is blury in fact the image has a noise inside it
    % SNR determines the degree of blury 
    % SNR  is signal_noise report
     
    % the conclusion is that the value of bluriness is gave by the snr signal
    % noise rapport between image that si grayscale and the image displayed
    % using wavelet transform
    imageplot(clamp(f1), ['SNR=' num2str(snr(f,f1), 4) 'dB'], 1,2,2);
    L'erreur est a cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fw = perform_wavelet_transf(f,Jmin,+1);
    Donc j'ai modifie le haar_aprox.m de l'archive comme ca.

    Erreur renvoie par matlab:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ??? Undefined function or method 'perform_wavelet_transf' for input arguments of type 'double'.
     
    Error in ==> haar_aprox at 6
    fw = perform_wavelet_transf(f,Jmin,+1);
    Si tu peux m'aider la corriger ca m'aide beacoup! C'est parce que j'ai besoin du contenu de la fonction perform_wavelet_transf qui est appelle dans mon script.

    Et la deuxieme question c'est quoi en fait les notations clamp et snr parce que j'ai pas compris.

    Pour le reste du code tout va bien!

    J'ai trouve tout ce qu'il me faut ici:

    http://www.pudn.com/downloads164/sou...ail748489.html

    http://read.pudn.com/downloads164/so...transf.m__.htm

    C'etait ca la fonction que je cherchais. Je gallere encore si j'ai d'autres soucis je continue cette discussion.

    Merci encore une fois magelan!

  4. #4
    Membre extrêmement actif
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Points : 858
    Points
    858
    Par défaut
    Encore des soucis

    Voila la nouvelle archive attache .

    Quand je lance mon script haar_aprox j'ai les erreurs en command window:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ??? Undefined function or method 'getoptions' for input arguments of type 'struct'.
     
    Error in ==> perform_wavelet_transf at 23
    h = getoptions(options, 'filter', '9-7');
     
    Error in ==> haar_aprox at 8
    fw = perform_wavelet_transf(f,Jmin,+1);
    Tous les fichiers contenu dans le dossier sont dans le path du matlab (pwd du matlab).

    Décharger l'archive pour voir qu'il me renvoie ces 2 erreurs. Je ne sais pas la source d'erreur du script perform_wavelet_transf

    Ce que je veux faire c'est le dernier example du lien:

    http://www.ceremade.dauphine.fr/~pey...rier_wavelets/

    Exercice 5: (the solution is exo5.m) Perform non-linear approximation with M=n^2/16 wavelet coefficients by keeping M best coefficients.

    exo5;
    Fichiers attachés Fichiers attachés

  5. #5
    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
    Dans la page que tu cites :
    http://www.ceremade.dauphine.fr/~pey...rier_wavelets/
    as-tu suivis les indications de la partie :
    "Installing toolboxes and setting up the path."
    au début du document? Si oui, tu n'aurais pas tout ces problèmes de fichiers manquants... Il suffit de télécharger les 2 toolbox et de les ajouter au path en suivant les indications.
    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.

  6. #6
    Membre extrêmement actif
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par magelan Voir le message
    Dans la page que tu cites :
    http://www.ceremade.dauphine.fr/~pey...rier_wavelets/
    as-tu suivis les indications de la partie :
    "Installing toolboxes and setting up the path."
    au début du document? Si oui, tu n'aurais pas tout ces problèmes de fichiers manquants... Il suffit de télécharger les 2 toolbox et de les ajouter au path en suivant les indications.
    J'ai deja signal processing toolbox:

    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
     
    >> help signal
      Signal Processing Toolbox 
      Version 6.8 (R2007b) 02-Aug-2007 
     
      Table of Contents (T0C)
      -----------------------
        Digital Filters              - Digital filter design, simulation, and analysis
        Analog Filters               - Analog filter design, frequency transformation, analysis, and discretization
        Linear Systems               - Conversion of linear system representations
        Windows                      - Family of functions to window data
        Transforms                   - CZT, FFT, DCT, Goertzel, Hilbert, etc.
        Cepstral Analysis            - Real, complex and inverse cepstrum
        Statistical Signal Processing- Statistical signal processing and spectral analysis
        Parametric Modeling          - AR, ARMA, and frequency response fit modeling
        Linear Prediction            - Schur, Levinson, LPC, etc.
        Multirate Signal Processing  - Interpolation, decimation, and resampling
        Waveform Generation          - Pulses, periodic and aperiodic signals, vco, etc. 
        Specialized Operations       - Plotting, vector manipulation, uniform encoding/decoding, etc.
        Graphical User Interfaces    - GUIs for data visualization, spectral analysis, filter design, and window design
        Demos                        - Signal Processing Toolbox demos
     
      See also audiovideo, filterdesign.

    J'ai toutes les toolboxes necessaires.

    J'utilise 2007b (7.5).

    Il se trouve le fichier dans le pwd.

    Ici j'ai toutes les fichier de ma derniere archive:

    C'est bizarre pourquoi il ne reconnait la function perform_wavelet_transf.

    Mais il y a une autre erreur dans perform_wavelet_transf.m.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    >> pwd
     
    ans =
     
    C:\Documents and Settings\Production\Mes documents\MATLAB
    J'ai ajoute les 2 lignes dans le passé mais j'ai renoncé a cette idée parce qu'il me renvoyait getd.

    haar_aprox.m:

    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
     
    getd('toolbox_signal/');
    getd('toolbox_general/');
     
    % photo_grey is the name of my grayscale image
     
    n = 256; % grayscale image has 256 levels of gray
    f = rescale(load_image('photo_grey',n) );
    Jmin = 0;
     
    m = n^2/16; % non-linear approximation best fit for wavelet coefficient of a grayscale image
    fw = perform_wavelet_transf(f,Jmin,+1);
    a = sort(abs(fw(:))); 
    a = a(n^2:-1:1);
    T = a(m+1); % T threshold for image
    fw1 = fw .* (abs(fw)>T); % T is threshold we see those frequencies above threshold 
    % also we eliminate for coefficient wavelet amplitude which equals 0
    f1 = perform_wavelet_transf(fw1,Jmin,-1);
    % display
    clf;
    imageplot( clamp(f), 'photo_grey', 1,2,1);
    % SNR describe in fact the degree of how an image is blur and has noise
    % an image is blury in fact the image has a noise inside it
    % SNR determines the degree of blury 
    % SNR  is signal_noise report
     
    % the conclusion is that the value of bluriness is gave by the snr signal
    % noise rapport between image that si grayscale and the image displayed
    % using wavelet transform
    imageplot(clamp(f1), ['SNR=' num2str(snr(f,f1), 4) 'dB'], 1,2,2);
    getd c'est une autre fonction? (getd.m).

    parce qu'il me donne une autre erreur:

    Erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ??? Undefined function or method 'getd' for input arguments of type 'char'.
    Excusez-moi magelan pour te stresser mais cette partie est la plus importante de mon projet!

    Merci pour ton temps!

    J'ai essaye corriger comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    get('toolbox_signal/');
    get('toolbox_general/');

    J'ai essaye aussi comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getd('toolbox/signal/');
    Mon toolbox signal se trouve ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Program Files\MATLAB\R2007b\toolbox\signal/signal
    J'ai deja essaye comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    getd('/Program Files/MATLAB\R2007b/toolbox/signal');
    l'erreur persiste

  7. #7
    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
    Soit tu rajoutes les dossiers des toolbox dans le path en faisant : "File->Set PAth->Add Folders" et tu selectionnes tes fichiers,

    soit avant de lancer ton script, tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    getd = @(p)path(path,p); 
    getd('toolbox_signal/');
    getd('toolbox_general/');
    Ces 2 méthodes permettent d'ajouter des dossiers dans le PATH de MATLAB.
    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.

  8. #8
    Membre extrêmement actif
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par magelan Voir le message
    Soit tu rajoutes les dossiers des toolbox dans le path en faisant : "File->Set PAth->Add Folders" et tu selectionnes tes fichiers,

    soit avant de lancer ton script, tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    getd = @(p)path(path,p); 
    getd('toolbox_signal/');
    getd('toolbox_general/');
    Ces 2 méthodes permettent d'ajouter des dossiers dans le PATH de MATLAB.
    Ok. Merci beaucoup.

    J'ai reussi a faire l'edge detection et l'approximation en utilisant haar 2D et wavelet toolbox.

    Si quelqu'un a besoin

    Excusez-moi pour les questions que j'ai poses mais j'ai resolu finalment le projet qui fais le calcul statistique du blury d'une image (approximation haar 2D).

    Merci beaucoup pour ton temps!

    http://www.mediafire.com/?zynztnv2zzm

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Approximation foireuse
    Par TonyEgg62 dans le forum C++
    Réponses: 8
    Dernier message: 26/04/2006, 16h43
  2. [MySQL] Implémenter une fonction de recherche approximative
    Par Chromatic dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 28/02/2006, 11h54
  3. [ImageMagick] Détection des couleurs approximative d'une image ?
    Par SkyDev dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 18/01/2006, 14h17
  4. probleme requete recherche approximative
    Par Immo dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/08/2005, 16h18
  5. [Astuce] Approximation de racines carrées
    Par Smortex dans le forum Assembleur
    Réponses: 16
    Dernier message: 18/05/2004, 06h17

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