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

  1. #1
    Nouveau Candidat au 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
    Points : 1
    Points
    1
    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 régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 72
    Points : 104
    Points
    104
    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
    Nouveau Candidat au 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
    Points : 1
    Points
    1
    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 régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 72
    Points : 104
    Points
    104
    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
    Nouveau Candidat au 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
    Points : 1
    Points
    1
    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 régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 72
    Points : 104
    Points
    104
    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.

  7. #7
    Nouveau Candidat au 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
    Points : 1
    Points
    1
    Par défaut
    Oui d'accord, j'ai compris. Mais supposons que les grenouilles en questions chevauchent ces lignes, est-ce que ça risque de fausser la fusion ?
    Et aussi, tu connaîtrais un tutoriel qui pourrait m'aider à faire ce que je fais précisément, ou même qui s'en approche ? J'ai beau chercher, je n'en trouve pas et je t'avoue que ça m'aiderait bien d'avoir un tutoriel pour m'aider.

    Ah et également, y a t'il un moyen de calculer la distance entre la caméra et la plateforme ? Ca pourrait m'arranger pour ajuster automatiquement les paramètres pour la detection.

    Merci

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 72
    Points : 104
    Points
    104
    Par défaut
    C'est vrai que si les grenouille passe sur les lignes ca va créer un chevauchement, mais dans ton traitement normalement t'as besoin de faire la détection des lignes qu'au démarrage, je ne vois l’intérêt de chercher les lignes tout le temps vu que les cameras et la plateforme sont fixes, donc au début de traitement tu détectes les lignes et tu stock les coordonnées que tu utiliseras dans le reste du traitement.
    Sinon pour la détection du trajet parcouru par les grenouilles, tu peux regarder le module de cracking de opencv, tu peu utiliser la soustraction des arrières plans pour détecter la grenouille et après la suivre avec l'algo camShift (y a un exemple dans opencv'), je pense que la documentation et les exemples d'open cv sont suffisant pour débuter.

    pour le calcul de la distance , tu peux faire une calibration, en gros :
    1. tu prend une image de la plateforme avec une webcam distante de 1 m par exemple et tu notes les dimension de la plateforme
    2. tu prends une deuxième image de la plateforme avec une webcam distante de 2 m cette fois et tu notes les dimension de la plateforme
    3. avec une règle de trois, tu peux donc déduire le coefficient de Zoom de la webcam (donc tu peux deviner en fonction de la taille de la plateforme des images à quelle distance se trouve la webcam).

    C'est une solution basique je dirai, mais qui donne des résultats correctes.

  9. #9
    Nouveau Candidat au 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
    Points : 1
    Points
    1
    Par défaut
    Oui d'accord je vois merci en tout cas de ton aide, si j'ai d'autres questions/problèmes je reviendrai

    A bientôt

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