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

Traitement d'images Discussion :

signification physique de sigma dans edge (méthode canny)


Sujet :

Traitement d'images

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Sri Lanka

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 191
    Par défaut signification physique de sigma dans edge (méthode canny)
    bonjour

    je cherche à comprendre la signification physique du changement de la valeur de sigma dans la commande edge pour la méthode de canny.
    j'ai fait quelques recherche sur internet et j'ai peur que ce que j'ai compris soit faux.

    ce que j'ai trouvé est que la taille du filtre gaussien pour canny n'est pas constante mais je ne trouve pas entre quoi et quoi elle varie. j'ai trouvé par contre que le choix de la taille se fait suivant la valeur de l'écart type que l'utilisateur spécifie, mais quelle est la relation mathématique qui détermine cette taille en fonction de sigma?

    pour mon cas sigma=2 marche bien (mieux que sigma=1) alors que normalement j'ai trouvé que sigma plus grand va donner une mauvaise détection, je ne suis pas sur mais je demande si quelqu'un sait pourquoi (si cela est vrai bien sur)?

  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
    Par défaut
    Salut,

    sigma influence effectivement la taille du filtre gaussien. Pour le comprendre, il faut regarder à quoi ressemble la fonction gaussienne : Fonction_gaussienne
    sur ce lien il y a la fonction gaussienne centrée en 1D (en 2D c'est presque pareil, il suffit de rajouter une dimension), et notamment une équation qui montre que la largeur à mi hauteur de la gaussienne est proportionnelle à sigma.

    Quant à savoir comment est calculé cette largeur dans l'algorithme edge, tu peux peut-être le trouver en éditant le code.

    Enfin, on ne peut pas à priori dire qu'une valeur de sigma sera plus performante qu'une autre sans info sur l'image en question, juste qu'un sigma petit permettra de détecter des côtés plus fin, et inversement pour un sigma plus grand.
    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
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par helaaa Voir le message
    je cherche à comprendre la signification physique du changement de la valeur de sigma dans la commande
    ..
    j'ai trouvé par contre que le choix de la taille se fait suivant la valeur de l'écart type que l'utilisateur spécifie, mais quelle est la relation mathématique qui détermine cette taille en fonction de sigma?

    pour mon cas sigma=2 marche bien (mieux que sigma=1) alors que normalement j'ai trouvé que sigma plus grand va donner une mauvaise détection, je ne suis pas sur mais je demande si quelqu'un sait pourquoi (si cela est vrai bien sur)?
    Sigma, comme tu l'as dit, est l'écart-type. C'est la définition statistique.

    Maintenant, je ne sais pas où tu as vu que "sigma plus grand va donner une mauvaise détection".

    Quand on dit qu'on prend les points à 1 sigma, c'est qu'on élimine tous les points dont l'écart est supérieur à l'écart-type.

    C'est l'utilisation statistique (théorique).

    Physiquement, en général, 1 sigma est un critère trop restrictif. C'est pourquoi l'utilisation habituelle en physique est de prendre 2 sigma, ce qui est très raisonnable compte-tenu des erreurs moyennes (instrumentation, numérisation).

  4. #4
    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
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Quand on dit qu'on prend les points à 1 sigma, c'est qu'on élimine tous les points dont l'écart est supérieur à l'écart-type.

    C'est l'utilisation statistique (théorique).

    Physiquement, en général, 1 sigma est un critère trop restrictif. C'est pourquoi l'utilisation habituelle en physique est de prendre 2 sigma, ce qui est très raisonnable compte-tenu des erreurs moyennes (instrumentation, numérisation).
    Salut, tu ne confondrais pas avec le seuil?
    Ou alors tu connais un algorithme qui filtre avec plusieurs gaussiennes? (ce qui me parait tout de même étonnant...)
    En tout cas la fonction edge canny (ce post a été déplacé depuis le forum matlab) dont parle helaaa n'admet qu'un seul sigma en entrée, par contre on peut lui indiquer 2 valeurs de seuil.
    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.

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par magelan Voir le message
    En tout cas la fonction edge canny (ce post a été déplacé depuis le forum matlab) dont parle helaaa n'admet qu'un seul sigma en entrée, par contre on peut lui indiquer 2 valeurs de seuil.
    helaa demandait la signifaction physique.. Je la donne..


    Maintenant je ne connais pas MatLab, mais cela correspond à ce que j'ai dit :

    sigma est une valeur statistique, c'est l'écart-type. Il n'y en a qu'un pour la distribution, il est calculable.

    Maintenant, les seuills sont varaibles et paramétrables par les utilisateurs, partout où on se sert des sigmas.

    Donc en particulier dans ce que tu dis de cette fonction sous Matlab.

    Il y aura donc un seuil quand le rapport signal/bruit est fort ( cela peut être 1 sigma par exemple) et vraisembablement un autre quand le rapport S/B est faible (ici sans doute 2 sigmas).

    Les seuils sont exprimés en nombre de sigmas..

  6. #6
    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
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Les seuils sont exprimés en nombre de sigmas..
    Je serais curieux de voir un algorithme ou c'est le cas, vraiment!

    Tu fais un raccourci un peu rapide en disant que seuil = k x sigma.
    Les seuils sont utilisées sur l'image filtrée pour trouver les bords, évidemment ces seuils dépendent de sigma, mais ce n'est pas une relation linéaire (loin de là, regarde la tête de la gaussienne).

    Bon je pinaille peut-être un peu mais je trouve que ce que tu dis n'est pas très clair... 2 exemples :

    Citation Envoyé par souviron34 Voir le message
    Quand on dit qu'on prend les points à 1 sigma, c'est qu'on élimine tous les points dont l'écart est supérieur à l'écart-type.
    De quel écart parles-tu?

    Citation Envoyé par souviron34 Voir le message
    sigma est une valeur statistique, c'est l'écart-type. Il n'y en a qu'un pour la distribution, il est calculable.
    De quel distribution parles-tu?
    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.

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Avant de remettre en cause ce que je dis, il est bon d'avoir quelques bases de statistiques

    Citation Envoyé par magelan Voir le message
    De quel distribution parles-tu?
    Dans le cas d'une image, ce sont les valeurs des pixels.

    Ailleurs c'est autre chose..

    C'est la courbe de l'ensemble des points..

    Statistiquement, tu calcules (ce qui revient dans ce cas à un histogramme) les valeurs des pixels, tu en calcules la variance (dont on tire l'écart-type), et la moyenne.




    Citation Envoyé par magelan Voir le message
    De quel écart parles-tu?
    Ce qui sert statistiquement : l'écart entre la valeur du pixel et la valeur "modélisée" (ici une gaussienne)..





    Citation Envoyé par magelan Voir le message
    Je serais curieux de voir un algorithme ou c'est le cas, vraiment!

    Tu fais un raccourci un peu rapide en disant que seuil = k x sigma.
    Les seuils sont utilisées sur l'image filtrée pour trouver les bords, évidemment ces seuils dépendent de sigma, mais ce n'est pas une relation linéaire (loin de là, regarde la tête de la gaussienne).

    Bon je pinaille peut-être un peu mais je trouve que ce que tu dis n'est pas très clair... 2 exemples :
    Les exemples sont pratiquement partout (moindre carrés par exemple).


    Dans ce cas, Sigma est l'équivalent d'un %.. Ce n'est donc pas linéaire, comme tu le dis...

    Cela caractérise l'écart entre le "modèle" et la mesure..


    La manière de représenter un seuil dans un cadre statistique est donc de le représenter en k*sigma, qui est une erreur "absolue-relative", si on veut, puisqu'on parle d'un écart entre une moyenne (locale) et une valeur...




    Il y a plusieurs manières de se servir d'un seuil ou d'un sigma..

    la moyenne étant calculée sur l'ensemble de l'image, le sigma aussi, tu as une estimation du "bruit".

    1. Tu pourrais t'en servir de manière absolue :

      Si tu as peu d'objets et un fond relativement présent et bruité, remplacer tous les pixels par exemple > 2 sigmas de la moyenne par la moyenne lissera le fond..

    2. Tu peux t'en servir d'une manière relative.

      Tu as une modélisation du signal ou de la distribution (ici par exemple une gaussienne). Tu appliques le seuil à l'écart entre le modèle et la valeur réelle, et non pas entre la valeur réelle et la moyenne..

  8. #8
    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 helaaa Voir le message
    je cherche à comprendre la signification physique du changement de la valeur de sigma dans la commande edge pour la méthode de canny.
    C'est l'équivalent d'un filtre passe-bas. Plus "sigma" est grand, plus le filtre est fort = plus il filtre les hautes fréquences, ce qui laisse une image avec seulement des très basses fréquences (donc très floue).

    Ce paramètre permet donc d'ignorer les "hautes fréquences" de l'image : le bruit, le grain, les petits détails (texture), ...
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/10/2014, 08h34
  2. instanciation problématique dans une méthode ActiveX
    Par mr.saucisse dans le forum MFC
    Réponses: 14
    Dernier message: 17/01/2006, 16h34
  3. Signification de codes ASCII dans OnKeyPress
    Par e-ric dans le forum Langage
    Réponses: 5
    Dernier message: 19/08/2005, 10h33
  4. [EJB2.1 Entity] [BMP] les requetes doivent-elles se trouver directement dans les méthodes ?
    Par webspeak dans le forum Java EE
    Réponses: 2
    Dernier message: 24/03/2005, 08h34
  5. Réponses: 2
    Dernier message: 15/11/2004, 15h12

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