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 :

Fusion de deux images par rapport à une ligne


Sujet :

OpenCV

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 5
    Par défaut Fusion de deux images par rapport à une ligne
    Bonjour tout le monde !

    Je suis actuellement en stage au CNRS et je dois aider un chercheur pour une expérience. Actuellement, mon but serait de fusionner deux images par rapport à une ligne. Je m'explique...

    Le chercheur fait une expérience sur des grenouilles. Pour cela, il a placé ces grenouilles sur une sorte de plateforme. Au dessus de cette plateforme se trouvent 2 webcam filmant chacune un peu plus de la moitié de la plateforme. Et une ligne noire "coupe" cette plateforme en deux. Et ce que je dois faire, c'est récupérer les deux captures vidéos en même temps, frame par frame, et pour chaque couple de frames (puisqu'il y a deux webcams), je dois les fusionner par rapport à la ligne centrale. La ligne centrale m'aide à fusionner les deux frames en fait. Et je ne sais pas comment faire.

    J'espère avoir été assez clair. Merci d'avance de votre aide.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 72
    Par défaut
    Bonjour,
    Tout dépend de ce que tu veux faire avec la partie restante de chaque image, si tu veux garder que la partie contenante la grenouille, tu détectes la ligne noire dans chaque image(avec une transformée de hough par exemple) et tu découpes l'image par rapport au coordonnées de la ligne (en gros ca sera de (0,0) a (x ligne,yligne)), et tu fais pareil pour la deuxième image, après ça tu fusionne les deux (tu crée une image vide qui a comme largeur la somme des deux largeurs des images) et tu copie la première image avec comme destination les coordonnées (0,0) , et la 2ème (xligne,yligne)).

    plus simple, pour éviter l’étape de détection de la ligne noire, si tes webcams sont fixes et que la plateforme ne change pas, bein tu peux déduire la taille de la partie qui dépasse de la ligne noire, en gros si tu captes tes images en 640x480 par exemple, la partie qui dépassera sera toujours la même et fera par exemple 80 pixels (en gros tu récupère une image et tu regardes la largeur de la partie qui dépasse) après ca tu fais le découpage et la fusion

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 5
    Par défaut
    Salut ! Tout d'abord merci de ta réponse.

    Alors déjà j'ai fait un petit schéma qui représente la plateforme. Petite précision déjà, ce ne sont pas 2 webcams mais 4.



    L'hexagone représente la plateforme et chaque carré de couleur représente ce que filme chaque webcam (et donc chaque webcam filme bien plus d'1/4 de la plateforme). On voit également le grand + qui traverse toute la plateforme qui sert à relier chaque capture vidéo aux captures voisines.

    J'ai pensé à la transformée de Hough, le truc que je me suis dit c'est que j'ai peur que la detection des lignes ne soient pas... précise. La finalité de ce que je suis en train de faire, c'est de pouvoir détecter les grenouilles et de retirer leur parcours de façon très précise. Il faut donc que la fusion des captures soient "parfaite" et identique durant toute l'expérience pour que les parcours ne soient pas faussés.

    Le problème avec la deuxième solution c'est que bien que les webcams ne bougent pas, je ne peux pas savoir à l'avance la taille de la partie à enlever (dans ton exemple c'est 80 px mais ça peut très bien être 100px) et puis supposons que le chercheur décide de monter un peu les webcams, ça va fausser les calculs.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 72
    Par défaut
    Je pense que la détection des lignes noires est la meilleur solution, regarde l'exemple de Opencv "squares.c", c'est un exemple qui montre comment détecter des rectangle en se basant sur la forme géométrique d'un rectangle (4 segments convexe qui ont des angles de presque 90°), tu peux facilement le modifier pour ne plus prendre en compte la contrainte des angle, et du coup il te détectera les contours convexe dans l'image issue de la webcam, j'ai utilisé cette méthode de détection de ligne pour traiter des tableau de facture est elle est très robuste.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 5
    Par défaut
    Oui j'ai testé ce code, le truc c'est que j'ai remarqué que les rectangles qui étaient dessinés après la détection de carrés étaient très instables, c'est à dire qu'ils bougeaient énormément, une peu comme dans cette vidéo : [ame="http://www.youtube.com/watch?v=9r16YiKyaZQ&feature=related"]http://www.youtube.com/watch?v=9r16YiKyaZQ&feature=related[/ame] et c'est pour ça que j'ai peur que ça soit peu adapté vis à vis de la précision nécessaire pour l'expérience.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 72
    Par défaut
    C'est normal que t'as ca dans le cas d'une vidéo où le rectangle bouge, dans ton cas les cameras sont fixe et la plateforme aussi, donc ca diminue beaucoup les erreurs de détection, aussi tu peux éliminer les erreurs que tu peu avoir en se basant sur la superficie de l'objet et aussi sa forme, dans ton cas ce n'est pas un rectangle, donc tu peux valider la détection seulement si les angles entre les segments sont correctes, tu peux mettre des paramètres dans ton application, pour que si on modifie les angle ou la plateforme par exemple, on peu ajuster la détection.

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/01/2010, 12h37
  2. trier couleur par rapport à une ligne selectionnée
    Par calvi2002 dans le forum Excel
    Réponses: 2
    Dernier message: 16/07/2009, 10h53
  3. Placer une image par rapport à une autre
    Par ProjetTram dans le forum Images
    Réponses: 1
    Dernier message: 03/03/2009, 17h01
  4. [Débutant] Deplacement par rapport à une ligne
    Par Spiff__ dans le forum Flash
    Réponses: 0
    Dernier message: 20/02/2009, 15h10
  5. Réponses: 6
    Dernier message: 10/04/2007, 15h14

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