begin process at 2012 05 30 10:15:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Traitement d'image : Detection de contour


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Traitement d'image : Detection de contour

lundi 3 janvier 2005 à 15:35:18 | Traitement d'image : Detection de contour

Bambi07

je cherche à déterminer les contours d'un objet dans une image en niveaux de gris.
Tous les pixels de l'objet sont quasiment au meme niveau de gris et le fond de l'image est totalement différent.

j'ai lu les différents codes sur la détection de contour présents sur le site, mais je n'ai rien compris...

merci d'avance.
lundi 3 janvier 2005 à 17:25:27 | Re : Traitement d'image : Detection de contour

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Il te faut appliquer une matrice 1 0 -1
                                               1 0 -1
                                               1 0 -1

A chaque pixel, c'est à dire, pour le pixel (i, j), il faut définit sa couleur selon la couleur des pixels
(i-1, j) + (i-1, j-1) + (i-1, j+1) - (i+1, j-1) - (i+1, j) - (i+1, j+1)

Voir ma source que j'ai faîte en VB récemment pour tracer les contours d'une forme, ou encore celle pour rendre flou les contours d'une forme quelconque.

Cette source fonctionne pour des images en couleurs, mais fonctionne également en niveaux de gris : il suffit de ne pas traitement les pixels sous forme de 3 composantes, mais uniquement avec 1 seule composante !

DarK Sidious
mercredi 5 janvier 2005 à 17:13:03 | Re : Traitement d'image : Detection de contour

Bambi07

je comprends pas trop le coup de la matrice... menfin merci quand meme
et puis je me rends compte que je suis pas encore arriver là...

il faudrait que je puisse gérer le fait que lorsque je clique sur l'image, le programme réagisse et qu'il relève le niveau de gris du pixel selectionné...
mercredi 5 janvier 2005 à 17:51:51 | Re : Traitement d'image : Detection de contour

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Pour détecter le niveau de gris d'un pixel, utilise la fonction GetPixel

En fait, cette matrice marche comme cà :

Pour traiter un pixel de coordonnée (x, y), il faut récupèrer les intensités des pixels voisins, et définir la nouvelle intensité du pixel courant selon la matrice que je t'ai donné. Cela permet de tracer les contours des formes.

DarK Sidious

[Administrateur et responsable VB/API du site 
ProgOtoP]
mercredi 5 janvier 2005 à 18:54:49 | Re : Traitement d'image : Detection de contour

Bambi07

ok merci pour l'explication sur la matrice...

oui en effet j'avais trouvé la fonction GetPixel et j'ai l'intention de m'en servir, mais ce que je ne trouve pas c'est comment faire pour étudier le pixel que je viens de sélectionner en cliquant avec la souris. en gros, les coordonnées qu'on donne à GetPixel doivent être celles de ce pixel sélectionné.
mercredi 5 janvier 2005 à 20:04:52 | Re : Traitement d'image : Detection de contour

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Utilise la fonction GetCursorPos pour récupèrer la position de ta souris à l'écran, puis utilise la fonction ScreenToClient pour récupèrer des coordonnées clientes à partir des coordonnées écran. Ainsi, tu pourras savoir où se trouve la souris dans ton image.

DarK Sidious

[Administrateur et responsable VB/API du site 
ProgOtoP]
jeudi 6 janvier 2005 à 10:21:04 | Re : Traitement d'image : Detection de contour

Bambi07

merci, ca va bien m'aider
ScreenToClient a 2 paramètre. le 1er me pose un prob : c le handle (je ne comprend pas bien ce que c) de la fenetre et je ne sais pas koi y mettre (je sai que pour l'écran c'est : m_hDC)....

et puis, je voudrais récupérer les informations sur les coordonnées du curseur seulement lorsque je fait un clique gauche. comment je peux faire missieur, siouplai ?
jeudi 6 janvier 2005 à 10:33:49 | Re : Traitement d'image : Detection de contour

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Le plus simple reste d'intercepter le message LBUTTONDOWN, de plus, le handler de ce message permet de récupèrer les coordonnées de la souris par le paramètre point :

void CtestgraphDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
    // TODO : ajoutez ici le code de votre gestionnaire de messages et/ou les paramètres par défaut des appels

    CDialog::OnLButtonDown(nFlags, point);
}

Donc crée une fonction interceptant le message WM_LBUTTONDOWN sur le contrôle de ton choix, et elle se déclenchera uniquement lorsque l'utilisateur cliqueras du bouton gauche de la souris sur le contrôle voulu.

DarK Sidious

[Administrateur et responsable VB/API du site 
ProgOtoP]
jeudi 6 janvier 2005 à 15:36:06 | Re : Traitement d'image : Detection de contour

Bambi07

void CprojetView::OnLButtonDown(UINT nFlags, CPoint point)
{
   CprojetDoc* pDoc = GetDocument();
   if(!pDoc->GetImage()->IsNull())
     {
         ......   
     }
CView::OnLButtonDown(nFlags, point);
}

comme ca j'arrive à faire réagir le programme quand je clique et qu'il y a une image affichée.
merci.

mai je sai pas koi mettre a la place des  .....  pour récupérer des infos pour les utiliser dans ma classe pour traiter mon image...
et je ne sai pas comment intercepter le mess WM_LBUTTONDOWN  (je me rappelle avoir vu un truc de ce genre en TP mais je me souvien pas où, quel cancre je suis !)

jeudi 6 janvier 2005 à 17:27:50 | Re : Traitement d'image : Detection de contour

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Pour intercepter le message WM_LBUTTONDOWN, il te faut passer par le ClassWizard, mais normalement tu l'as fait puisque tu as intégrer la fonction handler dans ton code !

Entre le ... il faut parcourir les pixels un à un et leur appliquer la matrice, donc il faut parcourir ton image ligne par ligne pour chaque colonnes, et appliquer la matrice à chaque pixel parcourut.

DarK Sidious

[Administrateur et responsable VB/API du site 
ProgOtoP]

1 2

Cette discussion est classée dans : objet, image, traitement, contour, detection


Répondre à ce message

Sujets en rapport avec ce message

traitement d'image [ par witon ] bonjour, je vous expose mon problème, j'ai un projet de "vision" j'utilise la bibliothèque OpenCV.. j' ai extraite les contours d'un objet (dans mon i traitement d'image sur Matlab [ par BillaEAS ] Bonjour à tous, Y'a t'il une méthode qui me permet de combiner qlqs pixels d'une image dans un seul pixel(sur Matlab),aussi de permettre récupérer ces reconaissance d'objet [ par jbflo ] Bonjour! Joyeux noël! programme en c, mode console Mon objectif n'est pas seulement de lancer mon webcam Mais de faire un programme de reconnaiss traitement d'image [ par bobob ] Bonsoir j'espere que quelqu'un pourra m'aider à résoudre mon problème qui me bloque depuis des jours :( je programme en C , j'ai chargé mon image a traitement d'image [ par amazber ] amzber vous dis bonjour tout le mande: mon PFE sur le traitement d'image, détection des mouvement humain en donne la vidéo après en fait des captures traitement d'image [ par amazber ] bonjour tout le monde j'ai un probleme comment manipuler une image avec opencv, comment les charger et acceder aux pixels de l'image (l'image est bina traitement d'image avec opencv [ par amazber ] bonjour j'utilise la bibliotheque opencv est je cherche comment deplacer une parti d'une image (sous image (rectangle)) dans la meme image sachant qu Detection de couleur dans une image [ par Darkness17068 ] Bonjour,j'aimerais pouvoir detecter la couleur jaune sur une image BMP. Quelqu un pourrait m aider a trouver un code source s il existe? Merci


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales