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 :

Split and Merge -- Image Processing


Sujet :

Traitement d'images

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 108
    Par défaut Split and Merge -- Image Processing
    Bonjour tout le monde,
    je cherche a implementer un algorithme pour segmenter une image .....
    Il parait que l'algorithme Split and merge est le plus adequat pour mon projet..

    donc apres plein de lecture ...
    j ai ecrit un algorithme recursive de split...
    je cherche a verifier si il est correcte:

    x1/y1 et x2/y2 les coordonnes des pixels formant la diagonale de mon image!

    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
    20
    21
    22
    23
    24
    25
    26
    27
     
    split(x1,y1,x2,y2,img)
    //traitement de la partie haut gauche
      si (homogene(x1,y1,(x2-x1)/2,(y2-y1)/2)==true)
              remplacer_moyenne_couleur((x1,y1,(x2-x1)/2,(y2-y1)/2)
      sinon split(x1,y1,(x2-x1)/2,(y2-y1)/2,img)
     
     
    (x2-x1)/2,y1,x2,(y2-y1)/2
     
    //traitement de la partie haut droite
      si (homogene( (x2-x1)/2 , y1 , x2 , (y2-y1)/2 ) == true)
              remplacer_moyenne_couleur( (x2-x1)/2 , y1 , x2 , (y2-y1)/2) )
      sinon split((x2-x1)/2,y1,x2,(y2-y1)/2),img)
     
     
    //traitement de la partie bas gauche
      si (homogene( x1 , (y2-y1)/2 , (x2-x1)/2 , y2 ) == true)
              remplacer_moyenne_couleur( x1 , (y2-y1)/2 , (x2-x1)/2 , y2 )
      sinon split( x1 , (y2-y1)/2 , (x2-x1)/2 , y2 )  
     
     
    //traitement de la partie bas droite
      si (homogene( (x2-x1)/2 , (y2-y1)/2 , x2 , y2 )==true)
              remplacer_moyenne_couleur( (x2-x1)/2 , (y2-y1)/2 , x2 , y2 )
      sinon split( (x2-x1)/2 , (y2-y1)/2 , x2 , y2 ,img)
      retourner true
    la fonction "homogene" verifie si une region est homogene ou nn
    la fonction "remplacer_moyenne_couleur" unifie les couleurs d'une meme region par une meme couleur

    je ne sais pas comment implementer la quadtree pour effectuer ensuite la fonction merge !!

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 108
    Par défaut
    heeelp ...

  3. #3
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Ca serait pas plus simple comme cela:
    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
     
    fonction split(x1,y1,x2,y2)
     
      si (homogene(x1,y1,x2,y2))
        remplacer_moyenne_couleur(x1,y1,x2,y2)
      sinon
        xm = (x1+x2)/2
        ym = (y1+y2)/2
        split(x1,y1,xm,ym)
        split(xm,y1,x2,ym)
        split(x1,ym,xm,y2)
        split(xm,ym,x2,y2)
      fin si
     
    fin fonction
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 108
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Ca serait pas plus simple comme cela:
    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
     
    fonction split(x1,y1,x2,y2)
     
      si (homogene(x1,y1,x2,y2))
        remplacer_moyenne_couleur(x1,y1,x2,y2)
      sinon
        xm = (x1+x2)/2
        ym = (y1+y2)/2
        split(x1,y1,xm,ym)
        split(xm,y1,x2,ym)
        split(x1,ym,xm,y2)
        split(xm,ym,x2,y2)
      fin si
     
    fin fonction
    Merci pseudocode pour ta reponse

    j ai corrige mon algorithme comme c est mensionne ...... sauf que je pense qu il y a une erreur semantique dans l implementation de split que je trouve pas !!

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 108
    Par défaut
    voici l implmentation .. !!

    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
     
     
    int split(int x1, int y1, int x2, int y2, ColorImage & img, float param)
     {
     
    if (isHomogenious(x1,y1,x2,y2,img,param))
     applyColor(x1,y1,x2,y2,img);
    else
    {
    int xm=(x2-x1)/2;
    int ym=(y2-y1)/2;
     
    split(x1,y1,xm,ym,img,param);
    split(xm, y1 , x2 , ym ,img,param);
    split( x1 , ym , xm , y2 ,img,param);
    split( xm, ym , x2 , y2,img,param);
    }

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/03/2012, 23h29
  2. segmentation d'image par split and merge
    Par Rose-de-sable dans le forum C++Builder
    Réponses: 0
    Dernier message: 29/05/2010, 12h09
  3. "Split and Merge" et "croissance de régions
    Par Flo. dans le forum Traitement d'images
    Réponses: 29
    Dernier message: 13/03/2009, 09h55
  4. split and merge segmentation d'image
    Par kachaloarmin dans le forum C++Builder
    Réponses: 5
    Dernier message: 24/05/2008, 13h18

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