Projet reconnaissance d'image en C
Affichage des résultats 1 à 1 sur 1

Projet reconnaissance d'image en C



  1. #1
    inviteb02f37b0

    Red face Projet reconnaissance d'image en C


    ------

    Bonjour,


    J'ai pour projet dans le cadre d'un projet de groupe ( IUT ) de concevoir un TP d'informatique en C. Nous utiliserons openCV pour faire l'acquisition et le traitement d'image.

    Le projet est la reconnaissance de forme simple, et la superposition d'un smiley sur celle-ci ( mini-réalité augmentée ). Le genre d'image à reconnaître est en pièce jointe.



    Pour commencer, j'ai penser réaliser le programme en plusieurs étapes :


    -étape 1 : acquisition de l'image : CvCapture *capture;

    capture = cvCaptureFromCAM(0);




    -étape 2 : réduction du bruit : idée, resizer l'image en divisant sa largeur et sa hauteur par 5, et en utilisant la moyenne des pixels supprimés.

    IplImage *image1, *image2;
    image1 = cvQueryFrame(capture);

    void cvResize(const CvArr* src, CvArr* dst, int interpolation=CV_INTER_LINEAR )
    J'avoue ne pas être bien sur du mode de fonctionnement de cette fonction, que je n'arrive pas à faire fonctionner. Un peu d'aide serait bienvenue




    -étape 3 : Seuillage : Mon idée serait de faire un seuillage pixel par pixel dans la nouvelle image en niveau de gris : Niveau 3 : vert>150 && vert>1,5*(rouge+bleu)
    etc ...
    Jusqu'au niveau 0 qui serait le niveau non-vert




    -étape 4 : Filtrage : Créer une image en noir et blanc, en regardant les pixels voisins : si la somme du pixel et des 8 pixels voisins sont > à une certaine valeur en niveau de gris, alors le pixel correspondant dans la nouvelle image est blanc ( = vert ) sinon, il est noir.
    Par exemple:
    if (1.5*(niveau_gris_haut+niveau_ gris_coté+...)+4*niveau_gris_p ixel_central+(niveau_gris_coin s_haut_gauche+...)>18){
    couleur.pixel=1; // les coins sont plus éloignés donc doivent avoir moins d'importance ...
    }
    else{
    couleur.pixel=0;
    }


    - étape 5 : Faire des clusters des points blancs restant ( points "verts" après filtrage ). Je ne sais absolument pas comment utiliser la fonction.


    - étape 6 : Faire une enveloppe convexe des clusters ( ce qui me semble le plus simple ).


    - étape 7 : Utiliser convexity defect [ CvSeq* cvConvexityDefects(const CvArr* contour, const CvArr* convexhull, CvMemStorage* storage=NULL ) ]
    Pour déterminer le haut de la forme ( pour donner un sens au smiley ). Et aussi déterminer si l'image est aberrante.


    - étape 8 : mettre le smiley sur à l'endroit voulu, avec la rotation correspondante.


    Je ne sais pas si j'ai été clair, n'hésitez pas à me demander plus de précision, et merci d'avance pour toute aide pouvant m'aider à avancer !


    à+

    -----
    Images attachées Images attachées  

Discussions similaires

  1. Projet reconnaissance d'image en C
    Par inviteb02f37b0 dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 01/06/2013, 14h44
  2. Projet Matlab Reconnaissance de contours
    Par invite289433e0 dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 10/12/2011, 01h14
  3. [MATLAB] Segmentation d'image + edition d'une matrice d'image
    Par invitef5d502cc dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 04/11/2009, 13h24
  4. [Immunologie] Reconnaissance
    Par invite5b10add7 dans le forum Biologie
    Réponses: 2
    Dernier message: 24/03/2009, 12h14
  5. Reconnaissance de sifflement (projet)
    Par invite6c9ea217 dans le forum Électronique
    Réponses: 5
    Dernier message: 25/06/2008, 08h43