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 :

Trouver les points à l'interieur d'un contour


Sujet :

Traitement d'images

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 37
    Points
    37
    Par défaut Trouver les points à l'interieur d'un contour
    Bonjour,

    J'ai un petit souci!

    J'ai réussi a extraire le contour d'un objet en isolant les points extérieurs d'un nuage de point, maintenant je dois faire la différence entre les points à extérieures et les points à l'interieur de mon contour!

    Mon but et d'extraire les pixels placées à l'interieur du contour.

    Je sait qu'il y a des solutions en contant le nombre de contour sur une droite,cependant comment peut on définir la droit qui montre le contour?

    J'espère que ma demande a été assez claire!

    Bonne journée

    Nicolas

  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 : 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 084
    Points
    16 084
    Par défaut
    Citation Envoyé par Niko_de_bordo Voir le message
    J'espère que ma demande a été assez claire!
    heu... non. Tu dis que tu as extrait le contour mais que tu ne connais pas les segments qui le forment ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    eu c vrai que c'était peut être pas assez clair...

    Je travaille sur un algo type snake, je cherche à calculer une energie.
    Pour cela je dois comparer les pixels autour de mon objet et à l'intérieur.

    Je travaille en c et la je n'ai que les sommets du contour. Après je vois pas comment faire pour utiliser les points de mon image et voir si il sont a l'interieur ou a l'exterieur de mon contour.

    Merci d'avance

  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 : 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 084
    Points
    16 084
    Par défaut
    Citation Envoyé par Niko_de_bordo Voir le message
    Je travaille en c et la je n'ai que les sommets du contour. Après je vois pas comment faire pour utiliser les points de mon image et voir si il sont a l'interieur ou a l'exterieur de mon contour.


    Bah, si tu as les sommets du contour, tu ne peux pas les relier entre eux ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par pseudocode Voir le message


    Bah, si tu as les sommets du contour, tu ne peux pas les relier entre eux ?
    Ba si je pourrais mais en faite je vois pas trop le but.?

    Ce que je voudrais faire c'est parcourir tous les pixels de mon image pour faire la moyenne de ceux a l'intérieur de mon contour.

  6. #6
    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 084
    Points
    16 084
    Par défaut
    Citation Envoyé par Niko_de_bordo Voir le message
    Ba si je pourrais mais en faite je vois pas trop le but.?
    Si tu relies les points, tu obtiens un polygone. Ton problème devient donc "comment extraire les points qui sont a l'intérieur d'un polygone", sujet que l'on a traité sur ce forum. Par exemple, avec un algo scanline.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    Bonjour,

    J'ai cherché, mais je n'ai pas trouvé les liens pertinent sur le sujet...

    Par contre, je ne vois pas comment je pourrais relier les points, qu'est ce que cela signifie?.

    Merci d'avance

  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 : 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 084
    Points
    16 084
    Par défaut
    Citation Envoyé par Niko_de_bordo Voir le message
    Par contre, je ne vois pas comment je pourrais relier les points, qu'est ce que cela signifie?.
    Je crois que j'ai compris ton problème : tu connais les points du contour mais tu ne sais pas dans quel ordre les prendre pour tracer le contour. C'est ca ?

  9. #9
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    Désoler, de n'être pas assez clair.

    En faite, je cherche des objet dans un image.

    Pour definir ces objets, j'ai quelque pixels, obtenues après segmentation.

    Mon but est de faire un snake pour pouvoir connaître mon objet( forme, taille dimension,...). Pour cela je doit connaître l'énergie interne, a savoir connaître touts les pixel a l'intérieur d'un contour, pour pouvoir en modifiant ces points ajuster mon contour et coller à mon objet.

    Pour le moment a partir du nuage de points j'ai extrait les pixels formant les sommet de mon contour externe, par algo de Jarvis.

    Le but a présent est de parcourir tout les pixels a l'intérieur de ce contour(je n'ai que les sommet) pour pouvoir extraire un donnée statistique sur tous les pixels se situant a l'intérieur de l'image.

    Citation Envoyé par pseudocode Voir le message
    Je crois que j'ai compris ton problème : tu connais les points du contour mais tu ne sais pas dans quel ordre les prendre pour tracer le contour.
    En faite je connais l'ordre , mais uniquement de mes sommets et pas forcement de touts les points que forme le contour.

    Ce qui m'intéresse se sont les points à l'intérieur de mon contour formée par mes sommets.

    J'espère que c'est un peu plus clair...

    Merci

  10. #10
    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 084
    Points
    16 084
    Par défaut
    Citation Envoyé par Niko_de_bordo Voir le message
    En faite, je cherche des objet dans un image.

    Pour definir ces objets, j'ai quelque pixels, obtenues après segmentation.

    Mon but est de faire un snake pour pouvoir connaître mon objet( forme, taille dimension,...). Pour cela je doit connaître l'énergie interne, a savoir connaître touts les pixel a l'intérieur d'un contour, pour pouvoir en modifiant ces points ajuster mon contour et coller à mon objet.
    Jusque là, je comprend.

    Pour le moment a partir du nuage de points j'ai extrait les pixels formant les sommet de mon contour externe, par algo de Jarvis.

    (...)

    En faite je connais l'ordre , mais uniquement de mes sommets et pas forcement de touts les points que forme le contour.
    Ton contour est le polygone convexe formée par les sommets retournés par l'algo de Jarvis.


    Le but a présent est de parcourir tout les pixels a l'intérieur de ce contour(je n'ai que les sommet) pour pouvoir extraire un donnée statistique sur tous les pixels se situant a l'intérieur de l'image.
    Un algo scanline permet de faire cela. Il faut construire la liste des points "gauche" et "droite" du contour. Les pixels que tu cherches sont ceux qui sont entre le point gauche et le point droite pour chaque ligne horizontale.

  11. #11
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    Ok c'est une bonne solution vu que la forme est convexe.

    Donc le principe, c'est pour tout les point compris entre ymin et ymax je doit trouver les xmax et xmin ...

    Mais comment fait on?

    Est ce qu'il faut calculer toutes les point des contours extérieurs à partir du point ymin xmin jusqu'a ymax xmin c'est sa?

  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 084
    Points
    16 084
    Par défaut
    Citation Envoyé par Niko_de_bordo Voir le message
    Ok c'est une bonne solution vu que la forme est convexe.

    Donc le principe, c'est pour tout les point compris entre ymin et ymax je doit trouver les xmax et xmin ...

    Mais comment fait on?

    Est ce qu'il faut calculer toutes les point des contours extérieurs à partir du point ymin xmin jusqu'a ymax xmin c'est sa?
    Comme ton contour est un polygone, son contour est formé de segments. Et connaissant les extrémités d'un segment, il n'est pas très dur de trouver les points intermédiaires.

    Donc l'idée c'est de construire deux tables de ce type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    | Y | X |
    +---+---+
    |   |   |
    Une table pour les pixels "gauche" et une pour les pixels "droite".

    - On commence par chercher le sommet le plus haut du contour Su(xu,yu). Ce sommet est ajouté dans les deux tables. Idem pour le sommet le plus bas.
    - On ajoute ensuite chaque autre sommet S(x,y) dans la table suivant que "x" est inférieur ou supérieur a "xu".
    - On trie les deux tables suivant Y.

    Pour trouver le pixel gauche d'une valeur Y quelconque, on cherche dans la table "gauche" les lignes Y précédente / suivante et ont fait une règle de 3 pour trouver le X correspondant. Idem pour le pixel droite.

  13. #13
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    Merci beaucoup pour ton explication mais je ne comprend pas l'usage de la règle de 3...
    je ne suis pas très douée

    imaginons deux points à gauche et le point x pour y=5;

    |..............x sup(3,10)
    |
    |
    |........x inconnu(x,5)
    |
    |
    | x inf(2,1)
    x pour la regle de 3=?

    On ne devrait pas utiliser l'équation de la droite entre ces deux points?
    y=ax+b
    a=(Yinf-Ysup)/(Yinf-Ysup)
    b=Y1-(temp.a*X1);
    pour y=5 => x=(5-b)/a

  14. #14
    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 084
    Points
    16 084
    Par défaut
    Citation Envoyé par Niko_de_bordo Voir le message
    On ne devrait pas utiliser l'équation de la droite entre ces deux points?
    Si, cela revient exactement au même.

    équation de droite:

    x = f(y) = xinf + (y-yinf)*(xsup-xinf)/(ysup-yinf)

    coordonnées barycentriques:

    x = ((ysup-y)*xinf + (y-yinf)*xsup) / (ysup-yinf)

  15. #15
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    merci beaucoup pour ton aide

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

Discussions similaires

  1. Comment trouver les points intermédiaires entre deux points
    Par pyo666 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 19/04/2010, 16h05
  2. Comment trouver les points des inflections pour une courbe
    Par mihaispr dans le forum Mathématiques
    Réponses: 3
    Dernier message: 30/09/2009, 14h25
  3. Trouver les points d'inflexion d'une courbe lissajou
    Par Ballim dans le forum Mathématiques
    Réponses: 7
    Dernier message: 23/09/2009, 12h31
  4. trouver les points x et y de la cellule "a1"
    Par patbou dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 12/02/2008, 20h27
  5. Comment trouver les segments de contour
    Par jameshamm dans le forum Images
    Réponses: 5
    Dernier message: 01/11/2007, 14h46

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