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 :

Traitement d'une image de type PGM


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
    Octobre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 40
    Par défaut Traitement d'une image de type PGM
    Bonjour à tous,

    Dans le cadre d'un exercice pour l'IUT je dois réaliser un algorithme qui dessine les contours d'une image données.

    J'ai déjà mis en place un algo qui "marchote" mais trop imparfait pour m'être satisfaisant.

    Voilà le principe général de celui-ci:

    dans un premier temps je stock la valeur de la couleur du premier pixel et je parcours tous les autres par la suite.
    Je compare cette couleur à celle du pixel que je suis en train de lire et si ce n'est pas la même couleur alors je passe sa couleur à noire.

    Mais le seul hic c'est que dès lors qu'un pixel foire au milieu d'un aplat de couleur j'ai le droit à un petit point noire.

    Voilà le code C:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    void contour2(Image *pIm, Image *pJm)
    {
    	int i, couleur;
     
    	creerImg(pJm, pIm->nblgn, pIm->nbcol, pIm->nbcoul, 255);
     
    	couleur = pIm->points[0]; 
     
    	for(i = 1; i < (pJm->nbcol * pJm->nblgn); i++)
    	{
    		if(pIm->points[i] == couleur)
    			pJm->points[i] = 255;
    		else		
    			pJm->points[i] = 0;
     
    		couleur = pIm->points[i];
    	}
    }
    Ps: Un fichier PGM est de structure suivante:

    première ligne: en-tête avec "P5 nbligne nbcolonne nbcouleur"
    puis les pixels les uns à la suites des autres


    Si jamais il vous faut plus d'information je me ferais une joie de vous les apporter.
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    tu sais le format PGM est très répandu car très simple, donc nous connaissons

    Pour ce qui est de trouver les contours de ton "objet", car les contours d'une image ça n'a pas trop de sens, tu devrais faire un peu de bibliographie sur le traitement d'image !!!
    Tu trouverais des filtres gradients, cany-derich, ... qui permettent d'extraire le contour. Sinon tu trouveras des méthodes un peu plus complexes, voire tordues dans les méthodes de segmentation : level set, snake, différents seuillages, ...
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 40
    Par défaut
    Etant donné que j'ai appris l'existence de ce format en cours je ne pouvais pas deviner qu'il était si répandu.

    Quand tu parles du contour de l'objet je suis bien d'accord avec toi mais je n'ai fait que répéter l'énoncer.(D'ailleurs au départ j'avais simplement mis un cadre de couleur noir à mon image c'est dire)

    Tous les types de traitement que tu cites dans ton message me sont inconnus.
    Malgré tout depuis hier soir je lis des pages sur deux types de traitement à savoir l'algorithme de Canny et celui de Sobel. Mais le problème c'est que dans chacun d'eux on abord des notions mathématique qui me sont étrangères donc j'aurais aimer en savoir plus.

    En quelque sorte j'ai le choix dans le traitement de l'image pour en extraire les contour mais il faut dire que je suis perdu. (passer 3 mois à faire des algorithmes pour lire des fichiers et passer comme ça sur les images c'est assez dur).

    Ps: De toutes mes lectures j'ai compris quelques trucs donc j'aurais aimer savoir si ils me seront utiles.

    Dans un premier temps les contours de l'objet sont signifiés par une baisse de la valeur des pixels qui les encadres ? (notion de gradient)

    Et de plus quand je regarde mon image de très près on peut voir que dans le cas général les contours sont collés à des pixels de couleurs très clair ne dépassant pas les 240.(sauf erreur de ma part).

  4. #4
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    le principe des traitements d'images par gradients a déjà été expliqué de nombreuses fois sur ce forum, il te faut donc un peu chercher.

    Sinon, pour une explication rapide :
    - Un gradient dans n'importe quel espace que ce soit, met en exergue une variation.
    - Dans une image on travaille sur un espace discret, ce qui est avantageux et aussi un souci permanent . Donc pour faire ressortir les variations, le plus simple c'est d'utiliser un masque comme Sobel. Si la zone est homogène, les pixels de l'image sont identique et ensuite multipliés par les coefficients du masque fait que tout s'annule. Donc un gradient nul. En revanche, si valeurs des pixels sont très différentes, en multipliant par les coefficients, on va avroi des valeurs très grandes, parfois même suppérieures à 255 ou inférieures à 0, c'est pour cela que l'on met des fois une valeur absolue ou que l'on seuille entre 0 et 255.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

Discussions similaires

  1. Réponses: 23
    Dernier message: 05/09/2007, 11h53
  2. Traitement d'une image: Questions
    Par marcrem dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 19/07/2007, 17h27
  3. Question sur le traitement d'une image
    Par Muesko dans le forum Imagerie
    Réponses: 3
    Dernier message: 28/05/2007, 18h09
  4. traitement sur une image
    Par amazircool dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 15/05/2007, 22h52
  5. Projet - Visualiser le traitement d'une image
    Par genzo93 dans le forum 2D
    Réponses: 4
    Dernier message: 03/05/2007, 17h12

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