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

Images Discussion :

calcul de la moyenne d'une région [Débutant]


Sujet :

Images

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 164
    Points : 43
    Points
    43
    Par défaut calcul de la moyenne d'une région
    Bonsoir,
    j'ai une image à partir de laquelle je veux extraire une partie (le nez). J'ai utilisé pour cela l'algorithme Region Growing. Je définis le point de départ, le seed donc. Et à partir de ce point je veux prendre toute la partie qui est blanche (un seuil défini à 0,2).
    J'ai toujours un problème lorsque je passe à l'algorithme region growing. Le point de départ est en effet calculé sur l'image de départ, puis celle-ci est "croppée" pour enlever tout ce qui est inutile. Cet algorithme calcule la moyenne d'une région et cherche ensuite les points y appartenant (toujours selon le seuil défini au début).
    J'ai le message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ??? Index exceeds matrix dimensions.
     
    Error in ==> regiongrowing at 34
    reg_mean = I(x,y); % The mean of the segmented region
    Ma question est toute bête : Comment fonctionne donc cette moyenne ? Qu'est-ce que j'ai loupé?
    Je mets un lien pour plus de visibilité.
    http://www.louizi.com/thesis/test2.html

    Je sais que c'est assez primitif comme approche (de faire des crop successifs pour enlever les parties superflues) mais je m'y pencherai après avoir résolu ce souci

    Merci!

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    es-tu allé voir la :
    Index exceeds matrix dimensions.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 164
    Points : 43
    Points
    43
    Par défaut
    Salut Magelan,
    Merci pour ton retour.
    Oui j'y suis déjà allé, j'ai bien compris qu'il y avait plus d'éléments qu'il ne fallait. Sauf que pour comprendre là où ça cloche, j'aurai juste besoin de savoir comment fonctionne cette fonction de moyenne de région. Le code que j'ai pour la croissance de région est sur Internet et personne n'a eu le même souci que moi puisqu'il s'agit toujours de la même image à traiter.
    Est-ce utile de mettre le code ici pour plus de clarté ? Merci !

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Effectivement, ce serait plus facile de t'aider avec le code.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 164
    Points : 43
    Points
    43
    Par défaut
    Oki.
    Donc ici le code de la croissance par régions.
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    function J=regiongrowing(I,x,y,reg_maxdist)
    % This function performs "region growing" in an image from a specified
    % seedpoint (x,y)
    %
    % J = regiongrowing(I,x,y,t) 
    % 
    % I : input image 
    % J : logical output image of region
    % x,y : the position of the seedpoint (if not given uses function getpts)
    % t : maximum intensity distance (defaults to 0.2)
    %
    % The region is iteratively grown by comparing all unallocated neighbouring pixels to the region. 
    % The difference between a pixel's intensity value and the region's mean, 
    % is used as a measure of similarity. The pixel with the smallest difference 
    % measured this way is allocated to the respective region. 
    % This process stops when the intensity difference between region mean and
    % new pixel become larger than a certain treshold (t)
    %
    % Example:
    %
     %I = im2double(imread('medtest.png'));
     %x=198; y=359;
     %J = regiongrowing(I,x,y,0.2); 
     %figure, imshow(I+J);
    %
    % Author: D. Kroon, University of Twente
    imshow(I)
    if(exist('reg_maxdist','var')==0), reg_maxdist=0.2; end
    if(exist('y','var')==0), figure, imshow(I,[]); [y,x]=getpts; y=round(y(1)); x=round(x(1)); end
     
    J = zeros(size(I)); % Output 
    Isizes = size(I); % Dimensions of input image
     
    reg_mean = I(x,y); % The mean of the segmented region
    reg_size = 1; % Number of pixels in region
     
    % Free memory to store neighbours of the (segmented) region
    neg_free = 10000; neg_pos=0;
    neg_list = zeros(neg_free,3); 
     
    pixdist=0; % Distance of the region newest pixel to the regio mean
     
    % Neighbor locations (footprint)
    neigb=[-1 0; 1 0; 0 -1;0 1];
     
    % Start regiogrowing until distance between regio and posible new pixels become
    % higher than a certain treshold
    while(pixdist<reg_maxdist&&reg_size<numel(I))
     
        % Add new neighbors pixels
        for j=1:4,
            % Calculate the neighbour coordinate
            xn = x +neigb(j,1); yn = y +neigb(j,2);
     
            % Check if neighbour is inside or outside the image
            ins=(xn>=1)&&(yn>=1)&&(xn<=Isizes(1))&&(yn<=Isizes(2));
     
            % Add neighbor if inside and not already part of the segmented area
            if(ins&&(J(xn,yn)==0)) 
                    neg_pos = neg_pos+1;
                    neg_list(neg_pos,:) = [xn yn I(xn,yn)]; J(xn,yn)=1;
            end
        end
     
        % Add a new block of free memory
        if(neg_pos+10>neg_free), neg_free=neg_free+10000; neg_list((neg_pos+1):neg_free,:)=0; end
     
        % Add pixel with intensity nearest to the mean of the region, to the region
        %dist = abs(neg_list(1:neg_pos,3)-reg_mean);
        dist = abs(neg_list(1:neg_pos,3)-1);
        [pixdist, index] = min(dist);
        J(x,y)=2; reg_size=reg_size+1;
     
        % Calculate the new mean of the region
        reg_mean= (reg_mean*reg_size + neg_list(index,3))/(reg_size+1);
     
        % Save the x and y coordinates of the pixel (for the neighbour add proccess)
        x = neg_list(index,1); y = neg_list(index,2);
     
        % Remove the pixel from the neighbour (check) list
        neg_list(index,:)=neg_list(neg_pos,:); neg_pos=neg_pos-1;
    end
     
    % Return the segmented area as logical matrix
    J=J>1;
    Et là mon appel à cette fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    J = regiongrowing(marked_img,b,a,0.2);
    marked_img est l'image en entrée ayant tous les points "contours" marqués.
    (a,b) sont les coordonnées du point de départ de la croissance de région; c'est à dire le point le plus bas de l'image.
    0,2 est le seuil de tolérance (intensité par rapport à la moyenne).

    Voilà, j'espère que cela servira. Merci encore.

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Ok, j'avais lu un peu vite ton premier message :
    Citation Envoyé par blackmisery
    Le point de départ est en effet calculé sur l'image de départ, puis celle-ci est "croppée" pour enlever tout ce qui est inutile.
    Pourquoi ne calcules-tu pas ton point de départ sur l'image réduite?

    Ton erreur provient du fait que les coordonnées de ton point de départ dans l'image initiale n'existent plus dans ton image réduite (normal, ce n'est plus le même repère).

    Donc soit tu calcules ton point de départ sur l'image réduite; soit tu calcules les coordonnées de ce point dans l'image réduite à partir des coordonnées du point sur ton image initiale en tenant compte de la réduction.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 164
    Points : 43
    Points
    43
    Par défaut
    J'ai mis en entrée l'image croppée, et j'ai l'erreur précisément à la deuxième ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Isizes = size(I) % Dimensions of input image
     
    reg_mean = I(x,y); % The mean of the segmented region
    La console me retourne et j'ai mon point de départ (le plus bas de l'image, celui du commencement du nez) x= 50, y= 200.

    Ce point est bien à l'intérieur de l'image non? Je ne comprends pas toujours cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ??? Index exceeds matrix dimensions.
     
    Error in ==> regiongrowing at 34
    reg_mean = I(x,y); % The mean of the segmented region
     
    Error in ==> corner at 126
    J = regiongrowing(img,b,a,0.2);
    Des idées?

  8. #8
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Es tu sur d' avoir mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    J = regiongrowing(img,200,50,0.2);
    ?

    Dans ta fonction x correspond au numéro de lignes (ordonnée) et y au numéro de colonnes (abscisse)
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  9. #9
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 164
    Points : 43
    Points
    43
    Par défaut
    Si tu veux la vérité j'ai déjà inversé les coordonnées; il n'y avait plus de message d'erreurs sauf que ça ne me prenait que mon premier point, et non pas une région Donc je pensais que cela ne pouvait être que l'inversion des X et Y. Maintenant je me retrouve face à un autre problème donc...

  10. #10
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Comme tu as mis un lien vers l'image, je vais essayer de faire le test. C'est bien "l'Image croppée", l'image sur laquelle tu fais ton region growing?

    Je te tiens au courant.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  11. #11
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 164
    Points : 43
    Points
    43
    Par défaut
    Oui exactement! Merci beaucoup.

  12. #12
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Ok, l'algorithme travaille en 4-connexités, c'est à dire que les voisins qui sont utilisés sont a, b, c et d pour un pixel P :
    . a .
    b P c
    . d .
    Or a priori, tu as pris le pixel suivant comme point de départ :

    0 0 1
    0 1 0
    0 0 0
    Donc ses voisins a,b,c,d sont tous à 0, la région ne peut pas grossir...

    Normalement, ceci devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    J = regiongrowing(img,199,51,0.2);

    En 8-connexité, tu n'aurais pas eu ce problème. Mais en règle générale (et surtout en 4-connexités), il faut mieux prendre un point qui soit bien à l'intérieur de ta région (et pas sur un bord).
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  13. #13
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 164
    Points : 43
    Points
    43
    Par défaut
    Merci pour l'explication de la connexité. C'est vrai que maintenant que j'y pense, la variable "dist"; un vecteur à 4 valeurs était toujours à 0 (0,0,0,0). Par contre pour que la croissance de région fonctionne réellement, il faut avoir un point qui est au beau milieu du nez, du genre (164,80). Tu me dis qu'en connexité 8, je n'aurai pas ce genre de problème? Alors pourquoi ne pas y passer directement si c'est le cas? Je n'ai pas de contraintes de temps de calcul et donc à priori je n'ai qu'à changer cette même variable "dist".
    Me confirmes-tu cette démarche?

    Normalement donc
    j doit passer à 8.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    % Add pixel with intensity nearest to the mean of the region, to the region
        dist = abs(neg_list(1:neg_pos,3)-reg_mean);
    Et là il doit y avoir un peu de grabuge (test sur le max des distances d'après ce que j'ai lu).

    Merci pour ton retour encore.

  14. #14
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Alors, oui, tu peux passer en 8-connexités, par contre a priori ce n'est pas la variable dist qu'il faut modifier (dist contient les distances entre le pixel courant et les pixels contenus dans neg_list (une liste des voisins)).

    En remplaçant ce bout de code, cela devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    neigb=[-1 0; 1 0; 0 -1;0 1;-1 -1;-1 1;1 -1;1 1];
    
    % Start regiogrowing until distance between regio and posible new pixels become
    % higher than a certain treshold
    while(pixdist<reg_maxdist&&reg_size<numel(I))
    
        % Add new neighbors pixels
        for j=1:8,
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  15. #15
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 164
    Points : 43
    Points
    43
    Par défaut
    J'ai bien changé la connexité à 8, avec toujours le même point de départ (200,51) et ça ne m'affiche que ce point. Avec dist égal à (0,0,0,0,0,0,0,0). Donc à priori à moins de "tricher" sur les coordonnées de départ rien n'y fait?

  16. #16
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Une question : tu travailles sur une image binaire ou en niveau de gris?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  17. #17
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 164
    Points : 43
    Points
    43
    Par défaut
    Maintenant que tu le dis.. Je ne sais pas... C'est une image médicale. Donc après le dicomread, je me rappelle que j'ai mis un certain temps pour trouver comment en changer les caractéristiques pour que les fonctions usuelles de Matlab fonctionnent.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    M = double(f);
    M = M-min(M(:));
    M = 65535*M/max(M(:));
    M = uint16(M);
    Ensuite, il y a un algo de détection de contours que j'ai utilisé (pour justement me trouver tous les points dits "sommets") à partir duquel j'ai pu trouver le fameux (200,50) (point le plus bas et donc début du nez).

    Cette algorithme effectue une transformation en niveau de gris je pense dès son début.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    I=rgb2gray(I); % Transform RGB image to a Gray one.
    Donc c'est en niveaux de gris?

  18. #18
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    C'est quand même un paramètre important à regarder... d'autant plus que tu fais un region growing dont le principal critère est la distance entre 2 niveaux de gris... (du coup 0.2, c'est peut-être beaucoup trops petit)

    Bon avant de continuer, il faudrait peut-être réfléchir en fonction de tes données. Que renvoie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    I(197:203,48:54) % Voisinage du point de départ
    max(I(:))
    min(I(:))
    mean(I(:))
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  19. #19
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 164
    Points : 43
    Points
    43
    Par défaut
    Voici ce que cela me renvoie :
    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
     
    ans =
     
         0     0     0     0     1     1     1
         0   255   255   255   255   255     1
         0   255   255   255   255   255     0
         0   255   255   255   255   255     0
         0   255   255   255   255   255     0
         0   255   255   255   255   255     0
         0     0     0     0     0     0     0
     
     
    ans =
     
       255
     
     
    ans =
     
         0
     
     
    ans =
     
        2.4012

  20. #20
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bon, ça va être difficile de t'aider sans avoir une vue globale sur ce que tu as fait comme traitement et l'information présente dans l'image courante.

    J'ai l'impression que ce bloc composé de valeurs 255 dans I représente l'un des carré blanc que l'on vois sur certaines de tes images... ces carrés sont les points de contours de tes formes, mais es-tu sûr de vouloir travailler sur cette image?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/12/2014, 00h54
  2. Calcul de la moyenne d'une activite + insertion des lignes
    Par Chikatilo dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 03/09/2008, 19h19
  3. Calcul de la moyenne d'une activite
    Par Chikatilo dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 02/09/2008, 15h01
  4. calcule de la moyenne d'une région
    Par jameshamm dans le forum Images
    Réponses: 1
    Dernier message: 02/03/2008, 15h47
  5. [MySQL 4.0] Calcul de la moyenne d'une somme
    Par Silver76 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 31/05/2007, 12h33

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