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 :

Traitement d'image


Sujet :

OpenCV

  1. #1
    Membre à l'essai
    Étudiant
    Inscrit en
    Février 2007
    Messages
    23
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 23
    Points : 19
    Points
    19
    Par défaut Traitement d'image
    Je travaille sur l'état de mouillage d'une chaussée. Dans ce but, j'enregistre des images toutes les 3 minutes.
    J'ai crée un programme qui soustrait une image d'un état sec à n'importe quelle image, je trouve donc la différence (en noir et blanc). A présent je désire compter le nombre de pixels noir. Le problème est que ma zone à analysée n'est qu'une ellipse qui se trouve dans l'image. Je voudrais savoir de quelle manière je peux réduire la zone où il faut compter.
    Merci de votre aide.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    réfléchis écris l'algo. et ensuite essaye de programmer. Là on t'aidera
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  3. #3
    Membre à l'essai
    Étudiant
    Inscrit en
    Février 2007
    Messages
    23
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    et bien en fait je pense faire passer les pixel de la zone extérieur arbitrairement en blanc, comme ça seul les pixels noir contenu à l'intérieur devront être coptés. le problème est que je ne sais pas comment faire pour choisir ma zone.
    je pense qu'il faut que je passe l'image en tableau, et que je teste jusqu'à ce que mon ellipse apparaisent.
    je ne sais pas du tout si je pars dans la bonne direction.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    attends un peu...

    Tu as fait la soustraction et tu as une image en noir et blanc..

    Tu l'as fait en C, ça non ?
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  5. #5
    Membre à l'essai
    Étudiant
    Inscrit en
    Février 2007
    Messages
    23
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    oui je l'ai fais en C, avec les bibliothèque open CV
    pourquoi?

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    ah je ne connais openCv, mais ton image doit être un buffer, non ?

    Alors

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    nb = 0 ;
     
    for ( i = 0 ; i < (dimx*dimy) ; i++ )
      if (! buff[i])
       nb = nb + 1 ;
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  7. #7
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 50
    Points : 74
    Points
    74

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Points : 288
    Points
    288
    Par défaut
    bonjour,
    afin de reduire la zone de recherche tu doit faire une binarisation de ton image de difference ( ce qui est deja fait je pense) puis tu doit faire une petirte boucle de morphologie 'erosion' afin de reduire la taille de la composante connexe avec un element sttructurent ellipsoidale de 9x9.

    si t'a du mal a le programmer , dit le je t'aiderai
    « Aucun homme ne peut rien vous révéler sinon ce qui repose déjà à demi endormi dans l'aube de votre connaissance»

    « No man can reveal to you aught but that which already lies half asleep in the dawning of your knowledge »_(¯`·.__-Alg3ri4nH4ck3r-__.·´¯)_

  9. #9
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    A noter qu'un algorithme d'érosion pour des images couleurs est disponible ici :

    http://www.developpez.net/forums/sho...d.php?t=322360
    Je ne répondrai à aucune question technique en privé

  10. #10
    Membre à l'essai
    Étudiant
    Inscrit en
    Février 2007
    Messages
    23
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Je vous remercie de vos réponses mais en fait, je ne suis pas sure qu'en érosion soit la solution à mon problème, je ne suis pas sure non plus que vous ayez compris ce que je cherce à faire. Je joins des photos. La première correspond à un enregistrement effectué par la webcam et la seconde représente la zone à traiter.
    Mon problème est donc de faire en sorte que le traitement s'effectue uniquement dans cet ellipse, que je ne parviens pas à définir avec plus de précisions.
    merci de votre aide.
    Images attachées Images attachées   

  11. #11
    Membre régulier Avatar de Ndugu
    Profil pro
    Inscrit en
    Août 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 121
    Points : 88
    Points
    88
    Par défaut
    Apparemment tu débutes en traitement d'image...

    Voici donc une méthode toute simple, mais pas très rapide...

    1 - Tu crées une image aux dimensions de ton image acquise où tu dessines ton ellipse en blanc sur un fond noir (avec paint par exemple) (pixels noirs = 0, pixels blancs = 255)
    2 - tu mutiplies ton image acquise avec celle de l'ellipse (plan par plan si tu travailles en couleur)
    Cette multiplication se fait pixel par pixel UNIQUEMENT si le pixel de l'image ellipse et noir

    voila, tu obtiens ta zone sur un fond noir!

  12. #12
    Membre régulier Avatar de Ndugu
    Profil pro
    Inscrit en
    Août 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 121
    Points : 88
    Points
    88
    Par défaut
    plus simple encore,

    tu dessines ton ellipse avec les pixels à 1 (et pas 255) et tu multiplies simplement tes deux images sans te poser de questions!

  13. #13
    Membre à l'essai
    Étudiant
    Inscrit en
    Février 2007
    Messages
    23
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    A l'aide des idées, j'ai réalisé l'image avec l'ellipse noir et le reste de l'image en blanc.
    Ensuite j'ai simplement fait l'addition des 2 images et j'ai obtenu ce que je recherchais.
    Merci beaucoup pour l'aide.

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

Discussions similaires

  1. Traitement d'images : quel langage?
    Par belasri dans le forum Langages de programmation
    Réponses: 19
    Dernier message: 07/10/2005, 09h59
  2. Réponses: 5
    Dernier message: 15/01/2005, 18h29
  3. commande c++ pour le traitement d'images
    Par mateo.14 dans le forum MFC
    Réponses: 2
    Dernier message: 12/01/2005, 10h46
  4. [lib] Traitement d'images
    Par Gogoye dans le forum Multimédia
    Réponses: 4
    Dernier message: 19/11/2004, 16h15
  5. Traitements d'image sur PNG avec transparence
    Par Ingham dans le forum Langage
    Réponses: 16
    Dernier message: 02/08/2004, 16h42

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