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

  1. #1
    Membre du Club
    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
    Points : 63
    Points
    63
    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
    Points : 7 614
    Points
    7 614
    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 éminent sénior

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    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).
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  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
    Points : 7 614
    Points
    7 614
    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 éminent sénior

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    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..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  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
    Points : 7 614
    Points
    7 614
    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
    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 : 51
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    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.

  8. #8
    Expert éminent sénior

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    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..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  9. #9
    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
    Je crois qu'il est temps de revenir à la fonction initiale de helaaa :
    edge est un algorithme de recherche de contour,
    la méthode canny utilisée permet d'utiliser une méthode classique qui est la dérivée de gaussienne.


    Avant de remettre en cause ce que je dis, il est bon d'avoir quelques bases de statistiques
    Pourquoi ce jugement? Je t'ai demandé des explications sur tes notions de stat, cela ne veut pas dire que j'attends un cours de ta part... maintenant je vais t'expliquer pourquoi je te l'ai demandé :

    As-tu réalisé que le sigma est le sigma utilisé dans le filtre gaussien? Je crois que tu es parti sur une mauvaise piste depuis le départ, comme expliqué plus haut le but n'est pas de filtrer le bruit (même si on se sert d'une gaussienne pour limiter l'influence du bruit), et le sigma d'une gaussienne utilisé comme filtre n'est pas le sigma de la distribution des pixel...

    Dans ce cas, Sigma est l'équivalent d'un %.. Ce n'est donc pas linéaire, comme tu le dis...
    Encore une phrase que je ne comprends pas (une relation de pourcentage ou plutôt de proportionnalité, c'est une relation linéaire...) mais de toute manière, quand je te demandais un exemple d'algorithme ou "les seuils sont exprimés en nombre de sigmas", je voulais dire un exemple qui utilise un filtrage par gaussienne bien sur... car dans le cas des moindres carrés, la gaussienne modélise justement l'erreur entre le modèle et les mesure... Rassure-moi filtrer une distribution et modéliser une distribution, ce n'est pas pareil quand même?


    Mais sinon, oui l'écart-type peut être utilisé pour effectuer un seuillage de l'image et tu l'as clairement expliqué à la fin de ton dernier message, mais c'est hors sujet dans cette discussion.
    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.

  10. #10
    Membre du Club
    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
    Points : 63
    Points
    63
    Par défaut
    merci pour les réponses ça m'a beaucoup aidé

  11. #11
    Futur Membre du Club
    Inscrit en
    Août 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 6
    Points : 7
    Points
    7
    Par défaut questions
    Je suis un débutant en traitement d'images et si vous pouvez m'éclairer:

    1- à pseudocode
    Est-ce que vous pouvez expliquer plus pourquoi lorsque sigma est grand on filtre les hautes fréquences

    2- à pseudocode
    merci pour vos explications,
    y a t il un moyen (cours,... en français) pour mieux comprendre le filtre de canny sans trop de détails (mais avec une synthèse)

    merci à vous tous

  12. #12
    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 : 51
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par guelbe Voir le message
    Est-ce que vous pouvez expliquer plus pourquoi lorsque sigma est grand on filtre les hautes fréquences
    Plus sigma est grand, plus on prend de valeurs du voisinage pour calculer la moyenne et donc plus les "pics" sont atténués.

    Exemple : Données = {...,1,1,1,10,1,1,1,...}

    Filtrage au voisinage de '10' :
    * rayon=0 => moyenne(10) = 10
    * rayon=1 => moyenne(1,10,1) = 12/3 = 4
    * rayon=2 => moyenne(1,1,10,1,1) = 14/5 = 2.8

    NB : dans le cas du filtre de Canny, ce n'est pas une moyenne arithmétique mais une moyenne pondérée. Mais le principe reste le même

    y a t il un moyen (cours,... en français) pour mieux comprendre le filtre de canny sans trop de détails (mais avec une synthèse)
    Je n'en connais pas.
    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