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 :

Localiser des objets dans une image


Sujet :

OpenCV

  1. #1
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2007
    Messages : 55
    Par défaut Localiser des objets dans une image
    Bonjour,

    je souhaite à partir d'une fonction opencv, localiser des objets dans des images.

    Les pixels appartenant à un même objet ont tous la même valeur. Je pourrais faire ma localisation en utilisant une boucle "for" recherchant le premier et le dernier pixels de chaque objets et ensuite tracer un rectangle à partir de ces points. Mais cette façon de faire prend beaucoup plus de temps à l'exécution que si j'utilise une fonction prédéfinie de opencv.

    Quelqu'un a-t-il une idée?

    Nates

  2. #2
    Membre éprouvé Avatar de hunta_kirua
    Profil pro
    Inscrit en
    Février 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Il peut être intéressant d'utiliser la bibliothèque cvBlobsLib basée sur opencv et qui te permettra de trouver tes objets.

    A+,

    Hunta

  3. #3
    Membre éclairé Avatar de gassi64
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2008
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2008
    Messages : 255
    Par défaut
    ça dépend l'objet aussi...les blobs c'est quand même des boules, si une boule n'est pas boule elle n'est pas détectée (c'est mon souci du moment)

  4. #4
    Membre éprouvé Avatar de hunta_kirua
    Profil pro
    Inscrit en
    Février 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 110
    Par défaut
    Re,

    Pour moi, blob c'était plutôt Binary Large OBject donc un peu tout et n'importe quoi. Bref, qu'un blob soit circulaire ou non, cvBlobsLib fonctionne pour des formes autres que circulaires car je m'en sers pour trouver des rectangles.

    Edit : gassi64, tu utilises cvBlobsLib pour ta détection ?

    A+,

    Hunta

  5. #5
    Membre éclairé Avatar de gassi64
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2008
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2008
    Messages : 255
    Par défaut
    Ha merci pour la définition !!! Je vais m'en servir pour le rapport!

    Moui je me sers de cvblobLib. Je détecte des sortes de boules blanches, rondes ou pas trop...c'est plutôt des tâches en fait du coup. Puis là, j'en ai une qui forme une sorte de cerceau mais pas complet. Alors ça fait comme un "c". Et là paf ça plante, ça ne le détecte pas! Strebyzar

  6. #6
    Membre éprouvé Avatar de hunta_kirua
    Profil pro
    Inscrit en
    Février 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 110
    Par défaut
    Re,

    Il faudrait que je regarde mieux mais il y a peut-être une histoire d'objet convexe/concave là-dessous. Si j'ai le temps, je jetterai un oeil.

    A+,

    Hunta

  7. #7
    Membre éclairé Avatar de gassi64
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2008
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2008
    Messages : 255
    Par défaut
    Merci Hunta, pour l'instant j'ai trouvé la source de mes ennuis, c'est une multiplication avec un masque qui renvoit une image où le gris est trop présent sur l'objet concerné. donc ensuite à la binarisation, ça forme ce "C"

  8. #8
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2007
    Messages : 55
    Par défaut
    Merci pour vos réponses.

    les objets que je recherche à détecter non pas une forme standard; il peut s'agit d'un disque, d'un rectangle ou d'une forme quelconque.

    si j'ai bien compris vos commentaires, cette lib "cvBlobsLib" servirait à la détection de disque et dans mon cas, il n'y a pas selement des disques.

    J'ai un code qui fonctionne; je cherche juste à l'optimiser en me passant d'une double boucle for.

    Nates

  9. #9
    Membre éprouvé Avatar de hunta_kirua
    Profil pro
    Inscrit en
    Février 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Je corrige tout de suite, cvBlobsLib ne sert pas que pour les formes circulaires puisque, comme je l'ai dit, je l'utilise pour des rectangles. Gassi64 semble rencontrer des difficultés pour certaines formes cependant.
    Passons maintenant au sujet proprement dit ; si j'ai bien compris il est question d'utiliser un maximum de fonctions d'opencv. Là, comme ça, ça me paraît assez difficile de faire tout directement avec opencv. D'après ce que tu dis, tous les pixels d'un objet ont une valeur distincte de celle d'un autre objet. J'utiliserai donc ça pour les isoler et j'utiliserai cvMinAreaRect2 pour trouver le rectangle. Je ne suis pas du tout sûr qu'il s'agisse de la meilleure approche mais des fois que ça donne des idées.

    A+,

    Hunta

  10. #10
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2007
    Messages : 55
    Par défaut
    Merci hunta.

    la fonction "cvMinAreaRect2" très utile; avec ça les rectangles seront le plus près possible du contours des objets. Cela m'évite de tracer le rectangle manuellement.

    Encore Merci.

    Nates

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

Discussions similaires

  1. localisation d'objet dans une image
    Par soforan dans le forum Images
    Réponses: 2
    Dernier message: 12/08/2011, 18h38
  2. Réponses: 1
    Dernier message: 12/12/2008, 13h42
  3. Localisation d'objets dans une image
    Par Nates dans le forum C
    Réponses: 3
    Dernier message: 13/07/2008, 09h44
  4. Localisation d'objets dans une image
    Par Nates dans le forum Images
    Réponses: 2
    Dernier message: 17/06/2008, 10h59
  5. Localisation d'"objets" dans une image
    Par ammar_diabolo dans le forum OpenCV
    Réponses: 4
    Dernier message: 07/04/2008, 09h36

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