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

C# Discussion :

[C#2.0] Localiser une forme dans une image


Sujet :

C#

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut [C#2.0] Localiser une forme dans une image
    Bonjour à tous,

    J'ai une image, et je connais quelques couleurs d'un objet dans cette image que je veux localiser... est-ce qu'il y a des outils pour faire ce genre de chose dans le framework 2.0?

    Ou sinon, je ne vois que découper l'image par zones, et pour chaque zone tester les couleurs des pixels, les comparer avec une liste de couleurs "témoins", et si y'en a plusieurs qui correspondent ou qui sont pas trop loin, on admet avoir trouvé l'objet recherché...

    Qu'en pensez vous?

    Merci
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  2. #2
    Membre actif
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Points : 252
    Points
    252
    Par défaut
    Bonjour,

    ca n'a pas l'air facile ce que tu veux faire.
    Je me souviens avoir fait du traitement d'image à l'école et pour réaliser ce que tu souhaites nous avions utilisé un logiciel assez puissant. Je ne sais pas jusqu'où tu veux aller mais si tu trouves un moyen je suis assez interessé.
    Désolé, ce message n'a pas beaucoup d'interêt, tu devais attendre à une réponse. Tout ce que je peux dire est que ce que tu proposes n'a pas l'air si mal que ça.

    Bon courage

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut
    Bah en fait c'est pour faire un bot pour un mmorpg réalisé en flash. Au plus tu combat de monstres, au plus tu as de l'expérience, mais au plus tu as de l'expérience, au plus c'est long de montrer. Et moi ça me soule de passer des heures à faire ça, c'est toujours le même, j'ai pas trop de patience.

    Du coup comme c'est super facil, j'ai pensé que je pouvais facilement "controler" mon personnage, y'a 5-6 actions à faire... Mais reste à interagir avec le jeu.

    J'essaye plusieurs trucs, par les trames (mais c'est du binaire :s), ce soir j'vais esayer d'ouvrir le swf, sinon j'essaye aussi par les images de détecter les 2-3 trucs que j'ai besoin...

    En fait j'arrive a détecter les monstres, mais c'est long, le proc tourne à 100% tout le temps, et c'est pas très fiable (selon une orientation, un monstre affichera des couleurs qu'il n'aura pas selon une autre :s)

    Merci pour ta réponse

    A bientôt
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  4. #4
    Membre habitué Avatar de Angath
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2004
    Messages : 140
    Points : 174
    Points
    174
    Par défaut
    Bonjour

    Regardes cet article MSDN :

    http://www.microsoft.com/france/msdn...x.mspx?pf=true

    Je pense que ca pourra t'aider à démarrer

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut
    Merci beaucoup,

    Je n'utiliserai pas ce composant, parceque les images que j'ai à traiter seront des captures d'écran, et qu'un monstre peut avoir plein de couleurs, et que le décor ou d'autres joueurs la même que le monstre.

    Néanmoins cet article m'est très utile, ne sachant pas quel technique utiliser, je sais désormais que le prélèvement de la couleurs sous la souris est "faisable" dans le sens ou "ça se fait".

    La carte de mon jeu est quadriller, je vais d'abord la représenter sous forme d'objet, avec les coordonnées de chaque "carré". Puis pour un monstre particulier, je prélèverai des échatillons de couleurs (2 ou 3). Ensuite, à interval régulier, je parcourerai les cases, à la recherche de ces échatillons. Au plus y il en a, au moins j'ai de risque de confondre un monstre avec un autre joueur.
    Une fois détecté, je peux simuler un clic sur l'application

    j'ai plus qu'à définir des caractéristiques d'état (si je suis en attente de monstre, en combat, en attente d'attaque, en validation de fin de combat etc....) pour utiliser cette technique afin de répondre aux actions à faire...

    En sois c'est pas très compliqué, reste à bien définir le corps du bot pour pouvoir facilement rajouter des actions (se déplacer d'une carte à l'autre, rajouter des monstres détectés, définir des styles de combats en fonction des ennemis, faire autre chose que du combat etc...). Dans un premier temps, je me limite à une carte, pour un type d'ennemi, j'envisagerai en fonction de la rapidité du programme, de mes besoins, etc...
    Puis beaucoup de tests, si un mec se pointe et me propose un truc et que ça compromet tout l'enchainnement... va falloir palier à ça

    Merci beaucoup, ça m'a redonné espoir

    A bientôt
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  6. #6
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    C'est bien ce que tu veux faire mais en Dot Net ça fait quoi exactement ?

    Tu veux lire la couleur d'un pixel ?
    comparer la veleur d'un pixel pa rapport à ses voisins ?
    ......
    Mehdi Feki : Modérateur .Net

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut
    Oui voilà,

    Là pour chaque monstre, j'ai des couleurs pour représenter leur "emprunte". Au chargement, je récupère les coordonnées de chaque cases du jeu. Ensuite régulièrement, dans chaque case, je cherche les couleurs d'une ennemie spécifique. Et quand dans une case il y a toutes les couleurs de l'emprunte du monstre, je considère qu'il est là, et je simule un clic dessus.

    Ca fonctionne bien, mais c'est un peu long (scan toute la zone du jeu, pixel par pixel...). Du coup, j'ai pensé à un truc mais j'ai pas encore eu le temps de l'implémenter... c'est qu'un monstre ne soit plus identifié par un ensemble de couleur, mais plutôt par un ensemble de couple couleur/coordonnée du pixel... Ainsi j'aurai plus qu'à tester 2 ou 3 pixel par case au lieu de 400-500...

    J'mets en place ça ce week end et j'vous tien au courant.
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  8. #8
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Citation Envoyé par mister3957
    Ca fonctionne bien, mais c'est un peu long
    Je doute que ça soit à cause de ton code. tu nous montre un petit bout ?
    Mehdi Feki : Modérateur .Net

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut
    Ca m'embête de passer mon code car il faudrai également une capture du jeu pour montrer la finalité... et ça le ferai pas trop...

    Hier, j'ai enregistré la capture de chaque case pour chercher des ennemis, ce soir je fait des prélèvements couleur à quelle position relative sur la case.

    J'ai simulé avec une position/couleur bidon, avec une précision de 3 pixel aux alentour, et c'est déjà beaucoup plus rapide et fiable. Ce soir je récupère les cases où des ennemis étaient là, pour prélever leurs "empruntes".

    Restera plus que la détection de la situation (si je suis en attente d'ennemi, en attente d'attaque etc... mais ça ça sera rapide puisqu'en général on a de grosses zones avec des couleurs unies, genre un bouton, et donc je pourrai mettre une précision de 1).

    Une fois ça établi et un code propre, je pourrais attaquer l'intelligence artificielle pour les battre ^^
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  10. #10
    Membre régulier

    Inscrit en
    Décembre 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 85
    Points : 104
    Points
    104
    Par défaut
    tricheur !

  11. #11
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut
    Mouarf nan c'est pas tricher, ça reste mon style de jeu, c'est pas comme si j'avais téléchargé un truc sur le net là
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  12. #12
    Membre régulier

    Inscrit en
    Décembre 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 85
    Points : 104
    Points
    104
    Par défaut
    oui, c'est comme si tu t'entrainais... et finalement, tu as ta recompense...(peut-être)

  13. #13
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut
    Bah oui, c'est moi qui fait le bot, du coup ça reste moi qui commande quand même mon personnage...

    M'enfin bref, je continu tout ça dès demain et je vous tien au courant car ça a l'air d'interesser pas mal de gens

    A bientôt
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  14. #14
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Wikipédia en parle.

    T'es bon en maths ?

  15. #15
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut
    Oui, j'ai un bac scientifique, et j'ai déjà travaillé dans la simulation et la réalité virtuelle ^^ matrices, quaternions etc... n'ont plus de secret
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  16. #16
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Et ton bac suffit pour les notions présentées dans l'article de Wikipédia ?

    J'ai un doute.. les modèles de Markov cachés et les réseaux neuronaux, j'ai abordé ça en 2 ou 3ème année d'école d'ingé...

    Va te falloir un peu de motivation

Discussions similaires

  1. Réponses: 6
    Dernier message: 10/06/2010, 15h31
  2. Une <form> dans une <form>
    Par pierrotparma dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 07/05/2010, 10h50
  3. modifier un élément d'une form dans une méthode d'une autre form
    Par baldebaran dans le forum Windows Forms
    Réponses: 9
    Dernier message: 14/08/2009, 13h59
  4. Copier une partie d'une form dans une image
    Par Duan dans le forum Débuter
    Réponses: 5
    Dernier message: 11/05/2009, 16h16
  5. Intégrer une Form dans une Form principale
    Par rol72 dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/09/2006, 14h20

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