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 :

Détection de contours par les opérateurs prewit et sobel


Sujet :

Traitement d'images

  1. #1
    Membre éclairé Avatar de SmileSoft
    Inscrit en
    Mars 2008
    Messages
    436
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 436
    Par défaut Détection de contours par les opérateurs prewit et sobel
    Salut,

    est ce qu'il s'agit d'un simple produit de convolution de l'image par les noyaux horizontaux et verticaux de prewit et sobel, j'ai fais le produit de convolution de mon image par le masque vertical de sobel donné dans ce lien et j'ai obtenu un mauvais résultat, voilà un exemple ci joint.

    Merci d'avance
    Images attachées Images attachées  

  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,

    effectivement, tu as un souci de programmation.
    - C'est bien une simple convolution. Je pense que ton problème pour l'instant est ici.
    - Au détail près que tu auras des valeurs négatives et supérieures à la bornes max habituelles de ton image. Si tu as une image codée sur [0,255], ton image après convolution sera étalée sur [-3x255,3x255].
    - Tu as alors plusieurs choix : laisser tel quel mais c'est plus dur à afficher, passer en valeurs absolue puis étaler l'histogramme sur [0,255] ou simplement étaler l'histogramme sur [0,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.

  3. #3
    Membre éclairé Avatar de SmileSoft
    Inscrit en
    Mars 2008
    Messages
    436
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 436
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Si tu as une image codée sur [0,255], ton image après convolution sera étalée sur [-3x255,3x255].
    - Tu as alors plusieurs choix : laisser tel quel mais c'est plus dur à afficher, passer en valeurs absolue puis étaler l'histogramme sur [0,255] ou simplement étaler l'histogramme sur [0,255].
    en étalant l'histogramme sur [0,255] après convolution je n'ai pas un grand changement, par contre j'ai pas compris l'autre choix que vous venez de citer.

    merci d'avance.

  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
    Citation Envoyé par SmileSoft Voir le message
    par contre j'ai pas compris l'autre choix que vous venez de citer..
    - Après la convolution tu as les valeurs sur [-3x255,3x255].
    - Tu prends la valeur absolue => [0,3x255].
    - Tu fais ton étalement d'histogramme => [0,255].

    Mais je confirme ce que j'ai marqué plus haut, ton problème est dans la convolution et non après.
    Montre nous ton morceau de code...
    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.

  5. #5
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Bonjour,

    Sinon, il existe encore une autre solution qui consiste à mettre à 0 toutes les valeurs < 0, et à 255 toutes les valeurs > 255

  6. #6
    Membre éclairé Avatar de SmileSoft
    Inscrit en
    Mars 2008
    Messages
    436
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 436
    Par défaut
    Merci pour vos réponses, voilà le code que j'ai mis pour la convolution;

    la fonction Filtre3 a comme paramètres les 9 éléments du noyau 3*3 du filtre et le rapport de normalisation.
    Code c++ : 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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    void __fastcall TForm1::Filtre3(int p0, int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, int k)
    {
    w=Srce->Width-1;
    h=Srce->Height;
     P = (jRgb*)Srce->ScanLine[0];
     L = (jRgb*)Srce->ScanLine[1];
     
            for(int y = 2; y < h; y++)
        {
        N = (jRgb*)Srce->ScanLine[y];
        T = (jRgb*)Dest->ScanLine[y-1];
        for(int x = 1; x < w; x++)
            {
            b = (   p0*P[x-1].Blue + p1*P[x].Blue + p2*P[x+1].Blue +
                   p3* L[x-1].Blue + p4*L[x].Blue + p5*L[x+1].Blue +
                   p6* N[x-1].Blue +p7* N[x].Blue +p8* N[x+1].Blue) / k;
     
     
     
            T[x].Blue = (Byte)b;
            T[x].Green = (Byte)b;
            T[x].Red = (Byte)b;
            }
        P = L;
        L = N;
        }
     
     
             ImageOriginale->Repaint();
          ImageOriginale->Visible=true;
     
             return;
    }
     
    //Appel de la fonction Filtre3 avec le masque vertical de sobel
    Filtre3(-1,0,1,-2,0,2,-1,0,1,4);

  7. #7
    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
    Citation Envoyé par kmaniche Voir le message
    Sinon, il existe encore une autre solution qui consiste à mettre à 0 toutes les valeurs < 0, et à 255 toutes les valeurs > 255
    Euh... NON
    Tu perds une sacrée quantité d'information => Tu considères comme identiques des valeurs de gradient allant du simple au triple.


    @SmileSoft :
    Je ne suis pas d'accord avec ta fonction :
    - je pense que ta boucle for sur y devrait plutôt commencer à 1 comme pour celle de x. Mais c'est un détail.
    - Inutile de diviser par k dans le cas de fonctions gradients. Tu ne fais pas de moyenne ici.
    - Même si je ne connais pas le C++, à mon avis ton problème vient de tes "scanline". Pour traiter les ligne Y, tu as besoin de récupérer (ici scanner) les lignes y-1, y et y+1. Or je n'ai pas vraiment l'impression que c'est ce que tu fais.
    - Il te faut une image source (à traiter) ET une image résultat. Tu ne peux pas écrire les résultats sur l'image que tu traites.
    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.

  8. #8
    Membre éclairé Avatar de SmileSoft
    Inscrit en
    Mars 2008
    Messages
    436
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 436
    Par défaut
    Merci ToTo13 pour la réponse, je pense qu'avec les déclarations suivantes le code devient lisible
    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
    Graphics::TBitmap *Srce;
    Graphics::TBitmap *Dest ;
       Byte b;
     
    class jRgb
    {
    public:
    Byte Blue;
    Byte Green;
    Byte Red;
     
    };
     
    jRgb *N;
    jRgb *P;
    jRgb *L;
    j'utilise deux pointeurs sur bitmap "Scre et Dest", Scre manipule le bitmap original et Dest manipule le bitmap après traitement, les deux pointent sur le composant ImageOriginale parce que je veux que mon résultat s'affiche sur la même image.
    Citation Envoyé par ToTo13 Voir le message

    - je pense que ta boucle for sur y devrait plutôt commencer à 1 comme pour celle de x. Mais c'est un détail.
    non, elle doit commencer par 2 parce que initialement, les deux pointeurs sur jRgb " P et L" pointent respectivement sur les lignes 0 et 1 donc je dois commencer la première itération par 2...
    - Même si je ne connais pas le C++, à mon avis ton problème vient de tes "scanline". Pour traiter les ligne Y, tu as besoin de récupérer (ici scanner) les lignes y-1, y et y+1. Or je n'ai pas vraiment l'impression que c'est ce que tu fais.
    .
    en fait ce que je fais réellement est que je récupère les ligne y-2, y-1 et y du bitmap Scre pour remplir la ligne y-1 du bitmap de la destination. voilà le même code commenté
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    void __fastcall TForm1::Filter3(int p0, int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, int k)
    {
    //en C++ les indices des tableaux commencent par 0
    w=Srce->Width-1;
    h=Srce->Height;
    //Intialement
     P = (jRgb*)Srce->ScanLine[0]; // P pointe sur la premiere ligne (y=0) du bitmap Source
     L = (jRgb*)Srce->ScanLine[1]; // L pointe sur la deuxieme ligne (y=1) du bitmap Source
     
            for(int y = 2; y < h; y++)    // on commence la boucle par la "eme ligne (y=2)
        {
        N = (jRgb*)Srce->ScanLine[y];        // N pointe sur la ligne y du bitmap source
        T = (jRgb*)Dest->ScanLine[y-1];   // T pointe sur la ligne y-1 du bitmap Destination
        for(int x = 1; x < w; x++)
            {
            b = (   p0*P[x-1].Blue + p1*P[x].Blue + p2*P[x+1].Blue +
                   p3* L[x-1].Blue + p4*L[x].Blue + p5*L[x+1].Blue +
                   p6* N[x-1].Blue +p7* N[x].Blue +p8* N[x+1].Blue) / k;
     
     
     
            T[x].Blue = (Byte)b;
            T[x].Green = (Byte)b;
            T[x].Red = (Byte)b;
            }
     
            // passage de P  à la ligne suivante
        P = L;
                // passage de L à la ligne suivante
        L = N;
        }
     
     
             ImageOriginale->Repaint();
          ImageOriginale->Visible=true;
     
             return;
    }
    salut,

    ce même code donne un très bon résultat pour les filtres moyenneur et gaussien basés en réalité sur le produit de convolution, j'aimerais garder cette fonction pour tout les filtres linéaires, j'ai pris le paramètre k à 1 pour éliminer la division mais le problème devient encore pire. je ne sais pas où se situe réellement le problème.

    merci pour votre aide.

  9. #9
    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
    Si en mettant k=1 tu n'obtiens pas ton gradient, c'est que ta fonction est fausse.
    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.

  10. #10
    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
    Citation Envoyé par SmileSoft Voir le message
    ce même code donne un très bon résultat pour les filtres moyenneur et gaussien basés en réalité sur le produit de convolution
    Donc des cas ou la valeur obtenue est dans le range [0,255].

    Ce qui semble bien prouver qu'il faut que tu normalises ta valeur de "b" dans le cas d'un noyau Sobel
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  11. #11
    Membre éclairé Avatar de SmileSoft
    Inscrit en
    Mars 2008
    Messages
    436
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 436
    Par défaut
    Citation Envoyé par pseudocode Voir le message

    Ce qui semble bien prouver qu'il faut que tu normalises ta valeur de "b" dans le cas d'un noyau Sobel
    pas compris

  12. #12
    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
    Citation Envoyé par SmileSoft Voir le message
    pas compris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    b = ( p0*P[x-1].Blue + p1*P[x].Blue + p2*P[x+1].Blue +
          p3* L[x-1].Blue + p4*L[x].Blue + p5*L[x+1].Blue +
          p6* N[x-1].Blue +p7* N[x].Blue +p8* N[x+1].Blue) / k;
    
    // normalisation de la valeur dans le range [0,255]
    
    b = valeurAbsolue( b );
    if (b>255) b=255;
    
    T[x].Blue = (Byte)b;
    T[x].Green = (Byte)b;
    T[x].Red = (Byte)b;
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  13. #13
    Membre éclairé Avatar de SmileSoft
    Inscrit en
    Mars 2008
    Messages
    436
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 436
    Par défaut
    salut, merci pseudocode, mais je n'ai pas eu un grand changement, je vous attache le résultat avant et après la normalisation (dans le 1er message de ce poste).

  14. #14
    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
    Citation Envoyé par SmileSoft Voir le message
    salut, merci pseudocode, mais je n'ai pas eu un grand changement, je vous attache le résultat avant et après la normalisation (dans le 1er message de ce poste).
    Si ce n'est pas une erreur de math, c'est une erreur de code. D'ailleurs je viens de voir que "b" est déclaré comme un "Byte", ce qui provoque surement un dépassement de capacité.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  15. #15
    Membre éclairé Avatar de SmileSoft
    Inscrit en
    Mars 2008
    Messages
    436
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 436
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Si ce n'est pas une erreur de math, c'est une erreur de code. D'ailleurs je viens de voir que "b" est déclaré comme un "Byte", ce qui provoque surement un dépassement de capacité.
    la condition est toujours non vérifiée, je ne vois pas où est le dépassement de capacité.

  16. #16
    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
    Citation Envoyé par SmileSoft Voir le message
    la condition est toujours non vérifiée, je ne vois pas où est le dépassement de capacité.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    b = ( p0*P[x-1].Blue + p1*P[x].Blue + p2*P[x+1].Blue +
          p3* L[x-1].Blue + p4*L[x].Blue + p5*L[x+1].Blue +
          p6* N[x-1].Blue +p7* N[x].Blue +p8* N[x+1].Blue) / k;
    comment peut on stocker toutes les valeurs entre -255 et +255 dans un byte ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  17. #17
    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
    Mmm... comme te le fait remarquer pseudocode, utiliser un byte limite tes possibilités.
    Tu ne pourras jamais traiter des images codées sur des short.
    Utilises donc des int pour régler le souci et t'abstraire du type d'image en niveau de gris (binaire, byte, unsigned short).
    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.

  18. #18
    Membre éclairé Avatar de SmileSoft
    Inscrit en
    Mars 2008
    Messages
    436
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 436
    Par défaut
    ci joint le résultat en prenant b entier:
    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
     ...
    int b = (   p0*P[x-1].Blue + p1*P[x].Blue + p2*P[x+1].Blue +
                   p3* L[x-1].Blue + p4*L[x].Blue + p5*L[x+1].Blue +
                   p6* N[x-1].Blue +p7* N[x].Blue +p8* N[x+1].Blue) / k;
     
                   b=abs(b);
                  if (b>255) b=255;
     
     
     
     
            T[x].Blue = b;
            T[x].Green =b;
            T[x].Red = b;
    ...
    et ce n'est pas un bon résultat, qu'en pensez vous?
    Images attachées Images attachées  

  19. #19
    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
    Euh... c'est pas un gradient ça :-(
    A ce stade, je te conseille de prendre une image 5x5 avec juste trois pixels blancs (non nuls) et de tester à la main ton algorithme pour voir ce qui se passe.
    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. détection de contour par canny
    Par azizmeski dans le forum OpenCV
    Réponses: 4
    Dernier message: 03/06/2013, 11h56
  2. Réponses: 0
    Dernier message: 08/12/2009, 19h05
  3. detection de contour par les méthodes des Contours actifs
    Par aichaeside dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 19/10/2009, 14h12
  4. détection de contour par ondelette
    Par tuunisiano dans le forum Traitement d'images
    Réponses: 5
    Dernier message: 23/02/2009, 07h34
  5. Détection de contour par la transformée de Hough
    Par Antho78 dans le forum Images
    Réponses: 1
    Dernier message: 18/11/2008, 11h36

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