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

C++ Discussion :

probleme filtre gaussien


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de highlight
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Novembre 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Novembre 2008
    Messages : 139
    Par défaut probleme filtre gaussien
    Bonjour tout le monde, j'utilise une convolution discrete pour floutter une image, par un filtre gaussien. Pour cela j'utilise la fameuse fenetre 3x3 suivante:

    | 1.0 2.0 1.0|
    1/16* | 2.0 4.0 2.0|
    |1.0 2.0 1.0| sauf que je sais pas par quelle ecart type (sigma) ils ont pu calculer cette fenetre. Autrement dit, je veux appliquer un lissage gaussian d'un ecart type sigma=1.0 mais je sais pas si c'est la bonne matrice ou pas, sinon avez vous une solution?

    NB: je programme en C/C++ sans utiliser opencv. Merci à vous

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par highlight Voir le message
    Bonjour tout le monde, j'utilise une convolution discrete pour floutter une image, par un filtre gaussien. Pour cela j'utilise la fameuse fenetre 3x3 suivante:

    | 1.0 2.0 1.0|
    1/16* | 2.0 4.0 2.0|
    |1.0 2.0 1.0| sauf que je sais pas par quelle ecart type (sigma) ils ont pu calculer cette fenetre.
    Le masque nous donne la valeur de la gaussienne en fonction de la distance au pixel central:

    G(d):

    d=0 --> G=4
    d=1 --> G=2
    d=1.4 --> G=1

    On remarque que la gaussienne perd la moitié de sa valeur a une distance de "1". En utilisant la formule de la demi largeur à mi-hauteur d'une gaussienne

    1.178 * sigma = HWHM = 1 --> sigma = 1/1.178 = 0.85

    Autrement dit, je veux appliquer un lissage gaussian d'un ecart type sigma=1.0 mais je sais pas si c'est la bonne matrice ou pas, sinon avez vous une solution?
    Il suffit de prendre la formule de la gaussienne (non normalisée) :

    G(d,sigma) = exp( -d² / 2*sigma² )

    dans ton cas, sigma=1, G(d) = exp( -d² / 2 ):

    G(0)=0
    G(1)=0.61
    G(1.4)=0.38

    Donc un masque possible est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            |38  61  38|
    1/100 * |61 100  61|
            |38  61  38|
    NB : Pour le masque, il est conseillé de prendre un rayon égal a 2 voir 3 fois la taille de sigma, afin d'avoir une bonne couverture des valeurs possibles :

    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre confirmé Avatar de highlight
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Novembre 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Novembre 2008
    Messages : 139
    Par défaut
    Je te remercie pour ces explications enrichissantes, c'est tres clair ce que tu as expliqué merci encore . Pourquoi prendre la distribution gaussienne non normalisée?

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par highlight Voir le message
    comment t'as cacluler cette valeur? pourquoi d=1.4?
    C'est la distance entre le pixel "haut/gauche" et le pixel central. Notre ami Pythagore nous dit que la distance entre ces deux pixels est racine(2).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    +--+--+--+
    |A |  |  |
    +--+--+--+
    |  |B |  |
    +--+--+--+
    |  |  |  |
    +--+--+--+
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre confirmé Avatar de highlight
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Novembre 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Novembre 2008
    Messages : 139
    Par défaut
    *lol* j'ai compris cela *lol* sauf que j'ai modifié la reponse mais je pense que la modification n'ete pas rapide sur le site, merci c'est clair

  6. #6
    Membre confirmé Avatar de highlight
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Novembre 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Novembre 2008
    Messages : 139
    Par défaut
    Supposons qu'on veut faire l inverse, ça veut dire cette fois ci on a le sigma=0.85, je trouve pas exactement le meme masque du depart que j'ai mi au debut, apres un calcul avec la gaussienne (normalisée) je trouve presque :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
     |1.0  2.0  1.0|
    1/10 *|2.0  4.0  2.0|
      |1.0  2.0 1.0|
    qu'est ce que tu en pense?

  7. #7
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par highlight Voir le message
    Je te remercie pour ces explications enrichissantes, c'est tres clair ce que tu as expliqué merci encore . Pourquoi prendre la distribution gaussienne non normalisée?
    C'est juste que, généralement, on recalcule le coefficient du masque afin d'avoir une invariance pour les zones uniformes (bref, il faut que la somme fasse "1", ce qui est le cas dans ton masque d'exemple). Donc le coefficient de normalisation de la gaussienne sera remplacé par le notre.

    On fait cela afin que le masque ne provoque pas un assombrissement/éclaircissement de l'image.

    Le masque normalisé pour ta gaussienne sigma=1 serait donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            |38  61  38|
    1/496 * |61 100  61|
            |38  61  38|
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

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

Discussions similaires

  1. [Excel] Probleme filtre élaboré
    Par mick_ban dans le forum Excel
    Réponses: 3
    Dernier message: 08/03/2007, 05h15
  2. Création d'un filtre gaussien
    Par leviet dans le forum Signal
    Réponses: 3
    Dernier message: 06/03/2007, 18h54
  3. Filtre gaussien pour un histogramme 2D
    Par hanane78 dans le forum Images
    Réponses: 4
    Dernier message: 19/01/2007, 16h32
  4. Probleme Filtre web.xml
    Par Kiroukool dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 08/11/2006, 11h16
  5. Probleme filtre Interbase
    Par Tricky-ft dans le forum Bases de données
    Réponses: 7
    Dernier message: 01/03/2004, 13h13

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