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 :

Suivi d'un objet


Sujet :

OpenCV

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Mai 2012
    Messages : 35
    Points : 10
    Points
    10
    Par défaut Suivi d'un objet
    slt mes amis,
    j'ai l'honneur je vous contacter une autre fois dans ce fameux forum,bon j'ai besoin d'une petit correction au niveau ce code en opencv
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    CvPoint meas_x1,meas_y1,cord_x1,cord_y1;
    	cord_x1.x=230;
    	cord_x1.y=100;
    	cord_y1.x=550;
    	cord_y1.y=500;
    	for (int l=0;l<10;l++)
    {
    std::string varimg;
    char format[] = "franck_000%d.jpg";
    char filename[sizeof format+100];
    sprintf(filename,format,l);
    varimg = filename ;
    IplImage*imgw = cvLoadImage( varimg.c_str() );   
        cvNamedWindow( "Example1", CV_WINDOW_AUTOSIZE );
    	meas_x1.x=cord_x1.x;
    	meas_x1.y=cord_x1.y;
    	meas_y1.x=cord_y1.x;
    	meas_y1.y=cord_y1.y;
    c'est une partie du programme principale mais celle la plus importante ,donc qui peut m'aider à avoir une solution me permet d'accéder la position suivante de l'objet à suivre c'est à dire la mesure de chaque point varie car ils sont des point d'un rectangle.Bon j'espère quelle est clair.

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 38
    Points : 58
    Points
    58
    Par défaut
    tu n'es pas clair, comment veux-tu qu'on puisse te répondre si on ne comprend pas ton problème ?

    Développe ton problème avec des images par exemple.

    la position suivante de l'objet à suivre
    quel objet ? on est sensé le deviner ?
    c'est une vidéo ?

    Quel est ton objectif ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Mai 2012
    Messages : 35
    Points : 10
    Points
    10
    Par défaut
    bon c'est un code permet d'afficher une série d'images(bien sure faisant une séquence) et dans ces images il existe un objet (par exemple la face d'un personne ) qui fait la mouvement.Et dans ce cas, je viens de mesurer la nouvelle position de cet objet de telle sorte je fais la suivi de cet objet. Dans le premier lieu j'ai encadré cet objet par un rectangle et par suite je viens (normalement) recevoir à chaque fois les mesure de la position de l'objet pour le corriger .

  4. #4
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 43
    Points : 81
    Points
    81
    Par défaut
    Bonjour, je n'arrive pas à comprendre tes phrases donc je vais essayer de répondre un peu au hasard avec ce que je devine.

    Tu as une séquence d'image et pour chaque image tu effectues une détection.
    Tu voudrais pouvoir suivre les objets détectés pour que sur les images suivante tu puisses savoir que tel ou tel objet détecté correspond à tel autre object de la première image.
    Ce n'est pas du tracking mais tu pourrais simplement comparer les coordonnées des images suivante pour voir si elles appartiennent à un rectangle dans ton image précédente, si c'est le cas tu déclares que c'est la même image.

    ex : image 1, tu as détecté un objet (x, 50;y,50)
    tu as défini un rectangle en fonction de la taille de l'objet détecté rect(40,40,20,20)

    image 2 tu détectes un objet en (x, 54;y,56)
    il appartient au premier rectangle donc c'est le même objet.
    Donc tu affectes les nouvelles coordonnées 54 et 56 comme les coordonnées de l'objet que tu es en train de suivre.

    Note : ce n'est pas du vrai tracking

    J'espère que ça répond plus ou moins à ta question, je te conseille de te faire relire avant de poster, tes phrases ont peu de sens.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Mai 2012
    Messages : 35
    Points : 10
    Points
    10
    Par défaut
    Merci Jérôme.L,
    mais ce n'est pas le cas que je voudrais le réaliser.Donc je suis entrain de traiter un programme de suivi d'un objet, à partir d'ensemble d'images et n'est pas un vidéo, ce pour cela j'ai besoin d'avoir une fonction sur opencv me permet de suivre un point de l'objet en passant d'une image à une autre .
    cordialement

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2011
    Messages : 33
    Points : 30
    Points
    30
    Par défaut
    Bonjour,

    Comme déjà énoncé précédemment, tu trouveras une partie de ta réponse ici : http://www.developpez.net/forums/d12...tions-lopencv/

    Cordialement,
    A.

    ps : relis tes phrases et demande a quelqu'un de te les corriger un minimum avant de poster. Elles rendent la compréhension de ton problème encore plus difficile pour ceux qui essayent de proposer des éléments de réponse.

  7. #7
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Avril 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 6
    Points : 4
    Points
    4
    Par défaut cvFindConvexityDefect
    Bonjour tout le monde,

    je veux appliquer la méthode cvFindConvexityDefect sur l'image d'une main de préférence qu'elle soit dans un vidéo, voilà le code: mais il m'affiche tjrs un erreur: [Linker error] undefined reference to `cv::Mat::Mat(_IplImage const*, bool)' .........
    svp j'ai besoin de votre aide
    #include "highgui.h"
    #include "imgproc.h"
    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>

    using namespace cv;
    using namespace std;

    Mat src; Mat src_gray;
    int thresh = 100;
    int max_thresh = 255;
    RNG rng(12345);

    /// Function header
    void thresh_callback(int, void* );

    /** @function main */
    int main( int argc, char** argv )
    {
    /// Load source image and convert it to gray
    src = cvLodImage ("a.jpg", 1 );

    /// Convert image to gray and blur it
    cvtColor( src, src_gray, CV_RGB2GRAY );
    blur( src_gray, src_gray, Size(3,3) );

    /// Create Window
    char* source_window = "Source";
    cvNnamedWindow( source_window, CV_WINDOW_AUTOSIZE );
    cvShowImage( source_window, src );

    createTrackbar( " Threshold:", "Source", &thresh, max_thresh, thresh_callback );
    thresh_callback( 0, 0 );

    cvwaitKey(0);
    return(0);
    }

    /** @function thresh_callback */
    void thresh_callback(int, void* )
    {
    Mat src_copy = src.clone();
    Mat threshold_output;
    vector<vector<Point> > contours;
    vector<Vec4i> hierarchy;

    /// Detect edges using Threshold
    threshold( src_gray, threshold_output, thresh, 255, THRESH_BINARY );

    /// Find contours
    cvfindContours( threshold_output, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0) );

    /// Find the convex hull object for each contour
    vector<vector<Point> >hull( contours.size() );
    for( int i = 0; i < contours.size(); i++ )
    { cvconvexHull( Mat(contours[i]), hull[i], false ); }

    /// Draw contours + hull results
    Mat drawing = Mat::zeros( threshold_output.size(), CV_8UC3 );
    for( int i = 0; i< contours.size(); i++ )
    {
    Scalar color = Scalar( rng.uniform(0, 255), rng.uniform(0,255), rng.uniform(0,255) );
    cvdrawContours( drawing, contours, i, color, 1, 8, vector<Vec4i>(), 0, Point() );
    drawContours( drawing, hull, i, color, 1, 8, vector<Vec4i>(), 0, Point() );
    }

    /// Show in a window
    cvNamedWindow( "Hull demo", CV_WINDOW_AUTOSIZE );
    cvShowImage( "Hull demo", drawing );
    }

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/10/2009, 15h21
  2. Réponses: 10
    Dernier message: 16/05/2007, 17h47
  3. Réponses: 2
    Dernier message: 17/08/2006, 16h24
  4. [FLASH 8] Suivi d'un objet
    Par Destiny dans le forum Flash
    Réponses: 3
    Dernier message: 17/01/2006, 15h56

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