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 :

Détection d'images assez proches


Sujet :

OpenCV

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 6
    Par défaut Détection d'images assez proches
    Bonjour à tous,

    Le titre de la question n'est pas très explicite mais voilà ma question. J'ai un programme qui track une personne et qui enregistre les coordonnées de la personne. J'ai donc à la fin un fichier .txt qui possède des coordonnées x,y et un temps. Je génère ensuite un heatmap. Voila à quoi correspond mon heatmap:
    Nom : heatmap_eq.png
Affichages : 272
Taille : 17,1 Ko

    Cela représente par exemple une personne qui tourne un peu en rond. Mon idée et de comparer deux heatmaps. Par exemple, j'ai un heatmap modèle d'une personne qui tourne en rond et la je viens de faire une acquisition d'un nouveau heatmap et je veux le comparer avec le modele. Si l'allure ressemble je veux pouvoir dire cette personne tourne en rond. Je cherche donc un moyen de mesure la similitude de ces deux heatmaps. Ma difficulté c'est que je veux pouvoir dire ça correspond même si la personne n’était pas exactement au même endroit. Je pensais donc faire une comparaison avec des histogrammes et faire une mesure des distances entre les deux. Je sais pas trop comment partir sinon si vous avez des idées, des conseils d'algo par exemple. Merci !

  2. #2
    Membre confirmé

    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 170
    Par défaut Metrique de comparaison de trajectoire
    Je regarderai du coté des métrique de comparaison de trajectoire :

    Sur google j'ai trouvé cet article qui semble correspondre à ton probleme:

    recherche Google

    Article


    Sinon, si tu veux aller du coté de la comparaison de ce type d'image, tu peux tenter une approche par matching de feautre (SIFT), mais ca me semble un peu bancale comme approche...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 6
    Par défaut
    Merci pour votre réponse.
    Pour le moment je suis parti sur ça.

    j'ai mis mon image dans un vecteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    vector<int> array
    array.assign(image.datastart, image.dataend);
    je fais ça sur mes deux images et ensuite je calcule la distance euclidienne entre les deux vecteurs:
    norm(array,array2);

    Pour le moment ça marche. Mais je voudrais essayer d'autre algorithme de mesure de distance tel que BHATTACHARYYA et EMD(earth mover distance). J'ai vue que il y a des codes tout fait sur opencv (http://docs.opencv.org/doc/tutorials...omparison.html) le problème c'est que moi je ne veux pas utiliser calhistogram, normalize comme ils font.

    Le prototype de comparehist est compareHist(<InputArray H1>, <InputArray H2>, <int method>). J'ai donc directement inséré mes vecteurs comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    compareHist(array, array2, CV_COMP_BHATTACHARYYA);
    Le problème c'est que j'obtiens l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Error: Assertion failed (H1.type() == H2.type() && H1.type() == CV_32F)
    une idée pour résoudre ce problème ?

  4. #4
    Membre confirmé

    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 170
    Par défaut convertTo
    Soit tu as des images de types différents, soit, ce qui est le plus probable, tes image ne sont pas de type CV_32F (float), tu dois etre en CV_8U

    array_CV_8U.convertTo(array_CV_32F, CV_32F);

    un truc de ce genre...

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 6
    Par défaut
    Oui effectivement c'était ça merci beaucoup.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    image.convertTo(image, CV_32F);

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 6
    Par défaut
    Je reviens vers vous car je suis toujours avec mes algorithmes qui mesurent les distances entre les pixels. Je veux cette fois essayer cette algorithme EMD (earth mover distance). Le problème c'est que la fonction d'opencv attend que mes tableaux soient signés sauf que je ne comprend pas ce que ça veut dire et comment je fais pour un tableau 1D.

    Si vous pouvez m'expliquer parce que même après quelque recherche je ne comprend pas.

    Sources: http://docs.opencv.org/modules/imgpr...istograms.html
    http://study.marearts.com/2014/11/op...e-example.html

Discussions similaires

  1. Détection dans image
    Par byrong dans le forum C#
    Réponses: 2
    Dernier message: 21/05/2010, 09h42
  2. Chargement de page fortement ralenti par la présence d'images assez lourdes
    Par laurentSc dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 06/03/2010, 19h20
  3. Dessiner sur une image : assez complexe
    Par lisco dans le forum Qt
    Réponses: 38
    Dernier message: 25/06/2009, 10h06
  4. Détection photo image formulaire
    Par BATiViR dans le forum Langage
    Réponses: 3
    Dernier message: 30/08/2007, 10h28
  5. redimensionner une image assez grosse
    Par ratakses dans le forum AWT/Swing
    Réponses: 13
    Dernier message: 06/09/2006, 18h20

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