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

Traitement d'images Discussion :

Algo reconnaissance image


Sujet :

Traitement d'images

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Par défaut Algo reconnaissance image
    Bonjour,
    J'ai une idée d'algorithme en tête cependant j'aimerais bien avoir votre avis quand à sa fonctionnalité (ça marchera ou pas?)
    Je souhaite reconnaître des cartes (images de 20*80 pixels) qui s'affiche sur mon écran à une position donnée.
    Tout d'abord je constituerais une base de données des 52 cartes du jeu en relevant tous les 20*80 pixels de l'image grâce un GetPixel.
    Ensuite une fois mis en fonctionnement mon programme relèvera 20*80 pixels de l'endroit ou sont les cartes (sur l'écran, on les prendra une par une (les cartes)) et les comparera à tour de rôles avec ceux de ma base de donnée (on compare d'abord avec l'as de pic puis l'as de coeur ...).
    Par comparer j'entends : faire un GetPixel sur un point de l'image de l'écran, si sa valeur est identique au point de même coordonnées de la base de donnée alors j'incrémente un compteur de 1. Ensuite pour chaque carte je calcule le rapport point identique divisé par nombre point de l'image et je dis que ma carte de l'écran est celle ayant ce rapport le plus grand.

    Mes questions sont :
    Est ce que mes résultats seront cohérents sachant qu'il sera impossible de comparer exactement la même image que celle de la base de donnée (décalage de 1 ou 2 pixels possibles...)?
    Ce décalage ne changera t il pas grand chose étant donné que mes cartes ne sont que de deux couleurs (rouge/noir et blanc)?
    Comparer 20*80 pixels 104 (103, on ne peut pas avoir deux fois la même carte...) fois d'afillés (52*2), combien de temps cela va t il prendre?

    Merci d'avance de votre attention

  2. #2
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Par défaut
    Bonjour,

    en ce qui concerne les cartes que tu dois reconnaitre, elles sont identiques à celles que tu vas mettre dans ta base de données, ou bien est-ce seulement des cartes très ressemblantes ???
    Vaste sujet que la reconnaissance de forme dans une base de données, il existe de nombreuses méthodes, plus ou moins complexe, mais cela dépend surtout du contexte d'utilisation...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Par défaut
    C'est exactement les mêmes, j'aurais fais des relevés au préalable pour constituer ma bdd

  4. #4
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Par défaut
    Dans ce cas, une méthode de parcours de tous les pixels t'assurera un résultat correct !
    Tu travailles sur des pixels, donc peu importe où sont placées les cartes dans l'espace, il suffit d'itérer sur les pixels, en incrémentant sur les deux images...
    Maintenant, pour accélérer la chose, tu peux introduire quelques "descripteurs" pour faire un tri préalable...
    Par exemple, dans une zone définie en pixels, qui correspond à la zone ou se trouve le symbole (coeur, trefle...etc), si tu trouves du rouge, tu élimines toutes les cartes pique et trèfle, et si tu trouves du noir, tu élimines les coeur et les carreau, ca te permettra de diviser par 2 ton espace de recherche tout en explorant seulement quelques pixels...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Par défaut
    Le fait que mes cartes seront relevées "manuellement" et que du coup deux cartes identiques comparées ne donneront pas 100% de similarité ne pose pas de problème?

  6. #6
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Par défaut
    heuuuu j'ai du mal à saisir.. les cartes à comparer seront identiques ou non ? (pour chaque pixel, pixel_bdd(x,y) = pixel_carte(x,y) ???)
    Un coup, tu dis oui
    C'est exactement les mêmes, j'aurais fais des relevés au préalable pour constituer ma bdd
    et un coup tu dis non
    Le fait que mes cartes seront relevées "manuellement" et que du coup deux cartes identiques comparées ne donneront pas 100% de similarité ne pose pas de problème?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Ca marchera surement, vu que c'est l'algorithme classique de reconnaissance de formes
    Je l'avais utilisé dans un projet de lectures de plaques minéralogiques. C'est vraiment pas la partie la plus compliquée, si tes images ont toutes la même taille et on été acquises bien à plat.
    Quelques conseils :
    - tu peux mettre plusieurs exemplaires (légèrement différents bien sûr) de chaque carte dans ta base de données. Surtout si tu veux être capable de reconnaître plusieurs des graphismes les plus utilisés :
    http://his.nicolas.free.fr/Images/Je...xandre_WEB.jpg
    http://trictrac.aquitain.free.fr/IMA.../pique_roi.gif
    - Tu parlais de deux couleurs, rouge et noir, mais qu'est ce que tu fais des figures qui sont de plusieurs couleurs ? De toutes façons, passe tes images en niveau de gris, voire carrément en binaire avant de faire la comparaison, avec un seuil très bas, pour que seul le fond blanc de la carte soit à zéro. Il n'y a pas deux cartes qui ont la même forme et des couleurs différentes, donc l'info de la couleur est inutile. Tu peux t'en servir à la rigueur pour accélérer le traitement comme te l'as conseillé Jeronimo.

    Comparer 20*80 pixels 104 (103, on ne peut pas avoir deux fois la même carte...) fois d'afillés (52*2), combien de temps cela va t il prendre ?
    C'est pas 52*2, mais 52*52 ! Tu compares chaque carte avec toutes les autres possibles. Ca fait plus de 4 millions de comparaisons c'est pas la mort.
    Je sais pas comment tu vois le truc, mais tu peux faire la récupération de tes pixels en C++, puis tu les mets dans une matrice de 20*80 booléens (puisque tu as une image binaire) et tu fais ton algo de comparaison en C pur. C'est pas la peine de travailler sur des objets image et de faire des GetPixel à chaque fois. GetPixel ne doit te servir qu'à remplir tes matrices au début.
    Pareil pour ta base de données. Tu fais la binarisation de tes images échantillon une fois pour toute, et après tu sauves juste des fichiers de 0 et de 1.

Discussions similaires

  1. Réponses: 22
    Dernier message: 21/07/2013, 10h14
  2. reconnaissance image fixes
    Par jlf dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 24/11/2011, 16h32
  3. [Algo] Reconnaissance faciale par comparaison
    Par Viish dans le forum Traitement d'images
    Réponses: 5
    Dernier message: 02/12/2009, 05h14
  4. [C]Algo snake image
    Par Nozraj dans le forum Débuter
    Réponses: 3
    Dernier message: 17/07/2009, 15h59
  5. [Algo] Reconnaissance de texte
    Par GyZmoO dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 19/06/2007, 17h24

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