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

OpenCV Discussion :

Récupérer les coordonnées des quatres coins d'un rectangle


Sujet :

OpenCV

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    BNS
    BNS est déconnecté
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 129
    Par défaut Récupérer les coordonnées des quatres coins d'un rectangle
    Bonjour à tous,

    alors voilà: j'ai une image très simple, binaire: un rectangle blanc sur fond noir. Ce rectangle est disposé de façon aléatoire sur l'image, et j'aimerais effectuer un changement de repère, c'est à dire passer à un repère (O,x,y) ou O est le coin supérieur gauche du rectangle, et les axes x et y sont dirigés selon les cotés du rectangle.
    En gros, il me faut récupérer les coord des 4 coins du rectangle, ça sera amplement suffisant.
    Quelle technique/fonction de opencv me conseillez-vous?
    Merci beaucoup pour votre aide!

  2. #2
    Membre expérimenté Avatar de Vinsss84
    Profil pro
    Inscrit en
    Février 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 175
    Par défaut
    Bonjour,

    Rectangle de taille fixe ou variable?
    Pas d'autres objets blancs dans l'image?

  3. #3
    BNS
    BNS est déconnecté
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 129
    Par défaut
    Le rectangle est de taille fixe, et c'est le seul objet blanc dans l'image

  4. #4
    Membre expérimenté Avatar de Vinsss84
    Profil pro
    Inscrit en
    Février 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 175
    Par défaut
    Comme ça je vois deux solutions.
    La première faire un balayage manuel de l'image en partant de 0,0 le premier point blanc rencontré figurera forcément un coin. on arrete le balayage.
    On repart en balayant dans l'autre sens (depart du bas a droite en desincrémentant) ça doit etre jouable verticalement ou horizontalement
    Le premier point detecté sera aussi logiquement un coin
    Si tu as les 2 coins opposés, connaissant la taille du rectangle le reste doit couler de source

    Après ej sais pas j'ai à peine reflechi 2 min la dessus peut être que je visualise mal les choses

  5. #5
    Membre expérimenté Avatar de Vinsss84
    Profil pro
    Inscrit en
    Février 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 175
    Par défaut
    Comme ça je vois deux solutions.
    La première faire un balayage manuel de l'image en partant de 0,0 le premier point blanc rencontré figurera forcément un coin. on arrete le balayage.
    On repart en balayant dans l'autre sens (depart du bas a droite en desincrémentant) ça doit etre jouable verticalement ou horizontalement
    Le premier point detecté sera aussi logiquement un coin
    Si tu as les 2 coins opposés, connaissant la taille du rectangle le reste doit couler de source

    Après ej sais pas j'ai à peine reflechi 2 min la dessus peut être que je visualise mal les choses

    Pour la seconde solution c'est une recherche de correspondance dans l'image entre un template contenant uniquement un rectangle blanc et ton image. Après reste le problème de la rotation. la premiere methode me semble donc plus simple pour ça

  6. #6
    BNS
    BNS est déconnecté
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 129
    Par défaut
    En effet c'est une solution. Pour éviter de rencontrer un pixel solitaire (très peu probable cependant), la solution pourrait de vérifier que ce point ait des voisins.
    J'avais recherché aussi à travailler avec la transformée de Hough: trouver les 4 lignes qui font les cotés du rectangle, puis récupérer les interceptions qui seraient les cotés. Mais la qualité des contours (lignes de biais) fait que Hough trouve souvent 2 ou 3 lignes par coté, chacune indiquant d'autres coins (très proches cependant) pour le rectangle

  7. #7
    Membre expérimenté Avatar de Vinsss84
    Profil pro
    Inscrit en
    Février 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 175
    Par défaut
    C'est sur que tout ça dépend de la compression de ton image et de la précision voulue.
    Tu peux aussi envisager une detection de contour (avec canny?)
    Enfin sinon il faudrait que je teste ça pour avoir plus d'idées...

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/03/2012, 13h59
  2. Récupérer les coordonnées des sprites
    Par aryanwolf dans le forum Traitement d'images
    Réponses: 4
    Dernier message: 24/06/2011, 22h00
  3. Réponses: 0
    Dernier message: 07/03/2010, 14h52
  4. Réponses: 2
    Dernier message: 03/02/2005, 13h21

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