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 :

Dessiner sur une image


Sujet :

OpenCV

Vue hybride

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12
    Par défaut Dessiner sur une image
    Bonjour à tous,
    Je dois réaliser une application particulière.
    Je travaille sous Visual Studio 2005, et mon projet est en MFC.
    Je dois donc créer une interface pour manipuler des images.
    Le but étant donc :

    -D'ouvrir une image sur mon application et de l'afficher sur mon application,
    -A partir d'une ToolBar, je choisis différents outils de dessins basiques (Tracer un trait, tracer un cercle, tracer un rectangle).
    -Je dessine sur l'image les formes géométrique souhaitées, et j'enregistre sous ce nouveau fichier dans le répertoire souhaité.

    J'ai, bien évidemment, installé comme il faut la librairie OpenCV.
    Je voudrais donc savoir :
    -Comment afficher mon image dans mon IHM (ma Boite de dialogue), j'utilise un Picture control ?

    -S'il est possible de créer ces formes à partir de la souris. Par exemple, je sélectionne mon outil de ma ToolBar(le trait par exemple), je pointe le curseur sur mon image, je maintiens le clique tout en bougeant mon curseur, et dès que je relâche, mon trait est crée, bref, tracer un simple trait comme le font Paint ou Photoshop.

    -S'il est possible de récupérer les valeurs des différentes formes (longueur, diamètre, etc.) ?

    Merci d'avance.
    Yannick.

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Par défaut
    Salut, et bienvenue.

    Je ne vois pas trop où intervient openCv dans ton projet. Les MFC présentent sans doute (jamais utilisé) les fonctions nécessaires pour l'ouverture d'un fichier, et son affichage. Après, si ton image est de type IplImage (qu'elle vient d'une vidéo, ou d'une caméra, ou quelque chose du genre qui utilise openCV) et bien j'ai donné sur ce forum, il ya quelques jours, la méthode pour convertir une IplImage en Bitmap MFC.

    http://www.developpez.net/forums/d67...ntrol-windows/

    Pour créer des formes comme avec paint, il faut utiliser les évènements qui gère les actions "pressed", "moved" et "released" de ta souris. Ainsi, tu peux connaître les coordonées de la forme que l'utilisateur est en train de tracer. Et il faut le mettre à jour des que la souris bouge (event moved). Tu le dessines vraiment sur ton image au moment du released.

    Voilà l'idée,

    Bonne chance,

    G.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12
    Par défaut
    Merci de ta réponse, je vais étudier ça.
    J'ai vu qu'avec OpenCV, il existait tout un tas de fonctions permettant de dessiner des formes (cvLine, cvcircle etc.). Voilà la raison pour laquelle j'aurais utilisé OpenCV pour la création des formes, d'autant plus que je dois, par exemple si la photo présente un visage, pouvoir effectuer une détection automatique de visage, et, si un visage est détecté, une forme de type rectangle ou ovale doit se dessiner autour du visage, donc je pense je que je vais être obligé d'utiliser les fonctions d'OpenCV concernant la création des formes géométriques.

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Par défaut
    Voilà la raison pour laquelle j'aurais utilisé OpenCV pour la création des formes, d'autant plus que je dois, par exemple si la photo présente un visage, pouvoir effectuer une détection automatique de visage, et, si un visage est détecté, une forme de type rectangle ou ovale doit se dessiner autour du visage, donc je pense je que je vais être obligé d'utiliser les fonctions d'OpenCV concernant la création des formes géométriques.
    D'accord, je comprends mieux ta pensée. Après, il faut savoir que si tu convertis ton image en format MFC pour l'afficher, si l'utilisateur dessine dessus, tu devras plus ou moins reconvertir l'image en format openCV (IplImage) pour utiliser les méthodes d'openCV de dessin. Ce qui risque d'être assez lourd je pense. Enfin, ce n'est pas un problème de performance si tu veux juste modifier des photos, mais plutot de faire correspondre les coordonées du clic sur l'interface MFC en coordonées de l'image openCV.

    Cependant, il est sans doute intéressant d'utiliser openCV pour la détection d'objet. Tu pourrais, sinon, enregister toutes les modifications faites sur ton image MFC, puis modifier effectivement l'image avec openCV au moment de l'enregistrement.

    G.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12
    Par défaut
    Merci de ta réponse !
    Je vais bosser dessus ce week-end en suivant ton raisonnement, je te tiendrais au courant de l'évolution de l'application.
    Merci.
    Yannick.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12
    Par défaut
    Arf, j'ai du mal à m'en sortir. Je vais te détailler plus précisément le projet que je dois réaliser.
    En réalité, il s'agit de faire du "Scrapbooking". J'ai à ma disposition un robot dont sa fonction sera de découpé les formes que je lui aurais ordonnées.
    Je m'explique :
    L'utilisateur a à sa disposition un logiciel (mon application que je tente de créer, en l'occurrence). Sur cette application, le client choisis une photo quelqueconque. Cette même photo à été imprimé et disposé sur ce que j'appellerais la "table de découpe". Le client va donc, sur l'application, dessiner les formes qu'ils souhaitent que le robot découpe. Par exemple, je dessine une rond autour d'un visage, j'envoie l'ordre de commande, et le robot découpe exactement la forme que je lui ai ordonnée sur la véritable photo (d'où l'importance de connaitre les coordonnées de chaque formes, pour pouvoir les retranscrire sur le plan réel, et que le robot découpe "là ou il faut").

    En réalité, j'ai du mal à comprendre ce que je vais devoir utiliser comme outils dans ma boite de dialogue, ou pour être plus clair, ce que je vais devoir utiliser dans ma boite de dialogue pour délimiter la zone ou mon image sera chargé (Picture Control ?). Je ne sais pas si je me fais comprendre. Car je ne sais pas si dans une Picture Control, je peux après appliquer les fonctions d'opencv de création de ligne, cercle, le facedetect etc. .
    Je pourrais te montrer une ébauche de l'IHM, si cela peut aider.

Discussions similaires

  1. comment dessiner sur une image
    Par baracouda dans le forum Graphisme
    Réponses: 2
    Dernier message: 26/05/2006, 00h21
  2. Dessiner sur une image
    Par cquadjul dans le forum C++Builder
    Réponses: 2
    Dernier message: 19/04/2006, 10h44
  3. Dessiner sur une image
    Par alex6891 dans le forum Java ME
    Réponses: 1
    Dernier message: 16/04/2006, 02h45
  4. Déplacer, zoomer, dessiner (sur) une image
    Par charlito dans le forum 2D
    Réponses: 4
    Dernier message: 22/02/2006, 01h58
  5. [Servlet] [Image] Dessiner sur une image
    Par gaia_dev dans le forum 2D
    Réponses: 5
    Dernier message: 01/09/2004, 17h11

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