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 :

Segmentation par croissance de région


Sujet :

Traitement d'images

  1. #1
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 275
    Points : 70
    Points
    70
    Par défaut Segmentation par croissance de région
    Bonsoir,
    Je débute en traitement d'image et je dois écrire un code qui permet de faire la segmentation d'images par croissance de régions.
    J'ai trouvé ce code :

    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(imgg,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)
    %
    % Author: D. Kroon, University of Twente
    %
    % 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);
     
     
    if(exist('reg_maxdist','var')==0), reg_maxdist=0.2; end
    if(exist('y','var')==0), figure, imshow(imgg,[]); [y,x]=getpts; y=round(y(1)); x=round(x(1)); end
     
    J = zeros(size(imgg)); % Output 
    Isizes = size(imgg); % Dimensions of input image
     
    reg_mean = imgg(x,y); % The mean of the segmented region
    reg_size = imgg; % 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(imgg))
     
        % 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 imgg(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);
        [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;
    Copyright (c) 2009, Dirk-Jan Kroon
    All rights reserved.
    
    Redistribution and use in source and binary forms, with or without 
    modification, are permitted provided that the following conditions are 
    met:
    
        * Redistributions of source code must retain the above copyright 
          notice, this list of conditions and the following disclaimer.
        * Redistributions in binary form must reproduce the above copyright 
          notice, this list of conditions and the following disclaimer in 
          the documentation and/or other materials provided with the distribution
          
    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
    ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
    LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
    INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
    POSSIBILITY OF SUCH DAMAGE.
    Mais lors de son éxecution je suis tombé sur cet erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ??? Error using ==> minus
    Integers can only be combined with integers of the same class, or scalar doubles.
     
    Error in ==> region at 68
        dist = abs(neg_list(1:neg_pos,3)-reg_mean);
     
    Error in ==> Untitled2 at 11
    J = region(imgg,x,y,0.2);
    Aidez moi SVP à le corriger

  2. #2

  3. #3
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 275
    Points : 70
    Points
    70
    Par défaut
    Merciiiii infiniment pour votre aide ça marche maintenant pour cette erreur mais le résultat est une figure toute blanche
    J'ai pas totalement compris ce code merci de me l'expliquer si c'est possible pour que je puisse le corriger

  4. #4
    Invité
    Invité(e)
    Par défaut
    Pourquoi imshow affiche une image toute blanche ?
    Maintenant tu sauras quoi faire avant de poser une question!

    Quelles sont les parties de ce code que tu ne comprends pas ?

  5. #5
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 275
    Points : 70
    Points
    70
    Par défaut
    Je vous remercie d'abord pour votre patience.
    Malheureusement, puisque je suis débutante en matlab j'arrive pas à comprendre quelques lignes
    Par exemple quel est le rôle de exist dans ces 2 lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(exist('reg_maxdist','var')==0), reg_maxdist=0.2; end
    if(exist('y','var')==0), figure, imshow(imgg,[]); [y,x]=getpts; y=round(y(1)); x=round(x(1)); end
    je n'ai pas aussi compris ce bocle while
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while(pixdist<reg_maxdist & reg_size<numel(imgg))
    Que permet cette condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(neg_pos+10>neg_free), neg_free=neg_free+10000; neg_list((neg_pos+1):neg_free,:)=0; end
    Finalement, quel est le role de abs dans cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dist = abs(neg_list(1:neg_pos,3)-reg_mean);

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Marie_7 Voir le message
    Malheureusement, puisque je suis débutante en matlab j'arrive pas à comprendre quelques lignes
    Débutante ou pas, la première étape quand on ne comprend pas du code, c'est de regarder la documentation des fonctions utilisées. doc exist
    Citation Envoyé par Marie_7 Voir le message
    Par exemple quel est le rôle de exist dans ces 2 lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(exist('reg_maxdist','var')==0), reg_maxdist=0.2; end
    if(exist('y','var')==0), figure, imshow(imgg,[]); [y,x]=getpts; y=round(y(1)); x=round(x(1)); end
    Ces lignes permettent de fixer les paramètres par défaut. Lors de l'appel de la fonction :
    • Si l'argument reg_maxdist n'est pas spécifié, il est mis à 0.2 par défaut.
    • Si l'argument y n'est pas spécifié, on affiche l'image et demande une saisie manuelle des points (doc getpts)

    Personnellement, je préfère utiliser nargin
    Citation Envoyé par Marie_7 Voir le message
    je n'ai pas aussi compris ce bocle while
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while(pixdist<reg_maxdist & reg_size<numel(imgg))
    Est la condition d'arrêt de la croissance de la région : tant que la distance minimale entre les pixels ([pixdist, index] = min(dist);) est inférieure au seuil reg_maxdist et que l'on a pas toute l'image sélectionnée, la boucle continue.

    Citation Envoyé par Marie_7 Voir le message
    Que permet cette condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(neg_pos+10>neg_free), neg_free=neg_free+10000; neg_list((neg_pos+1):neg_free,:)=0; end
    Comme l'indique le commentaire du dessus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    % Add a new block of free memory
    Cela permet d'optimiser les performances. (Cf pre-allocation)
    Citation Envoyé par Marie_7 Voir le message
    Finalement, quel est le role de abs dans cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dist = abs(neg_list(1:neg_pos,3)-reg_mean);
    Là je ne vois pas trop quoi te dire on prends la valeur absolue de la différence... La distance quoi!

  7. #7
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 275
    Points : 70
    Points
    70
    Par défaut
    Je sais que je pose des questions bete mais bon il faut que je comprends bien cette méthode
    Ces lignes permettent de fixer les paramètres par défaut. Lors de l'appel de la fonction :
    Si l'argument reg_maxdist n'est pas spécifié, il est mis à 0.2 par défaut.
    En point de vue croissance de région, pourquoi on doit fixer reg_maxdist à 0.2
    pixdist=0; % Distance of the region newest pixel to the regio mean
    while(pixdist<reg_maxdist & reg_size<numel(imgg))
    Puisque pixdist est déjà initialisé à 0 et reg_maxdist est initialisé à 0.2 donc pixdist est toujours inferieur à reg_maxdist. Quelle est l'utilité de ce boucle while
    Quel est le rôle de ces 2 variables: neg_pos et neg_free dans la croissance de région
    dist = abs(neg_list(1:neg_pos,3)-reg_mean);
    D'après le principe de croissance de région, est ce que cette ligne permet de calculer la différence entre la valeur du pixel avec la valeur moyenne de toute la région pour decider s'il appartient à cette région ou non

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Marie_7 Voir le message
    En point de vue croissance de région, pourquoi on doit fixer reg_maxdist à 0.2
    Sais-tu ce qu'est une valeur par défaut ?
    Citation Envoyé par Marie_7 Voir le message
    Puisque pixdist est déjà initialisé à 0 et reg_maxdist est initialisé à 0.2 donc pixdist est toujours inferieur à reg_maxdist. Quelle est l'utilité de ce boucle while
    As-tu vraiment regardé ce code en détail ? pixdist est mis à jour ligne 69.
    Citation Envoyé par Marie_7 Voir le message
    Quel est le rôle de ces 2 variables: neg_pos et neg_free dans la croissance de région
    • neg_pos suit la position du dernier pixel inséré dans la liste neg_list
    • neg_free est sa taille maximale allouée.

    Citation Envoyé par Marie_7 Voir le message
    D'après le principe de croissance de région, est ce que cette ligne permet de calculer la différence entre la valeur du pixel avec la valeur moyenne de toute la région pour decider s'il appartient à cette région ou non
    Oui.

    Pense à exécuter ce code pas à pas.

  9. #9
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 275
    Points : 70
    Points
    70
    Par défaut
    Merci pour votre réponse
    Pense à exécuter ce code pas à pas.
    Oui j'ai déjà exécuté ce code mais je n'ai pas arrivé au résultat attendu. J'ai obtenu comme résultat une image en niveau de gris comme celle obtenue avec rgb2gray dés le début de code sans aucun changement et aucune segmentation. C'est pour ça que j'ai essayé de comprendre ce code ligne par ligne pour que je puisse le corriger
    voici le programme principale
    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
     
    [file,path] =uigetfile({'*.jpg;*.tif;*.png;*.gif','All Image Files' });
    img_orig = imread(fullfile(path,file));
    figure(1);imshow(img_orig);
     if(ndims(img_orig)==3)
        imgg=rgb2gray(img_orig);
     end
     figure(2);imshow(imgg);
    Isize=size(imgg) %taille de l'image d'entrée
    H=size(imgg,1); %nbre lignes
    W=size(imgg,2);  %nbre colonnes
    %balayer toute l'image pour trouver la valeur de pixel la plus
    %petite(foncé)
    val=255;
    for i=1:H
        for j=1:W
            if(imgg(i,j)<val)
                val=imgg(i,j)
            end
        end
    end
    %selectionner les coordonnées des germes ayant la valeur val
    for i=1:H
        for j=1:W
            if(imgg(i,j)==val)
                image(i,j)=0;
                x=i
                y=j
                %je crois qu'il faut ici lister les coordonnées x et y de ces
                %germes pour les utiliser prochainement
            else
                image(i,j)=1;
            end
        end
    end
    J = region(imgg,x,y,0.2);
    k=double(imgg)+J;
    figure(3);imshow(k,[]);
    et voici la fonction après certaines modifications pour corriger les erreurs
    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
     
    function J=region(imgg,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);
     
     
    if(exist('reg_maxdist','var')==0), reg_maxdist=0.2; end
    if(exist('y','var')==0), figure, imshow(imgg,[]); [y,x]=getpts; y=round(y(1)); x=round(x(1)); end
     
    J = zeros(size(imgg)); % Output 
    Isizes = size(imgg); % Dimensions of input image
     
    reg_mean = imgg(x,y); % The mean of the segmented region
    reg_size = imgg; % 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(imgg)))
     
        % 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 imgg(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:double(neg_pos),3)-double(reg_mean));
        [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;
    J'ai besoin de votre aide

  10. #10
    Invité
    Invité(e)
    Par défaut
    Je te conseille de reprendre le code original qui marche parfaitement. Le code dans ton premier message est faux.

  11. #11
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 275
    Points : 70
    Points
    70
    Par défaut
    Oui j'ai déjà utilisé ce code comme il est mais j'ai obtenu cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ??? Error using ==> minus
    Integers can only be combined with integers of the same class, or scalar doubles.
     
    Error in ==> region at 69
        dist = abs(neg_list(1:neg_pos,3)-reg_mean);
    Donc j'ai changé cette ligne 69 comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dist = abs(neg_list(1:neg_pos,3)-double(reg_mean));
    Mais comme j'ai déjà dit que l'image résultat est toujours en niveau de gris sans aucune segmentation. Il parait que l'erreur est due au programme principale
    Je veux détecter seulement le chat c'est pour ça que j'ai utilisé dans le programme principale un code qui cherche les pixels les plus foncés.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Marie_7 Voir le message
    Oui j'ai déjà utilisé ce code comme il est mais j'ai obtenu cette erreur
    Et tu as bien sûr été regarder notre merveilleuse pour pouvoir la corriger!

    Regarde attentivement l'exemple fourni par la même occasion, et demande-toi à quoi sert réellement ce seuil.

  13. #13
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 275
    Points : 70
    Points
    70
    Par défaut
    Et tu as bien sûr été regarder notre merveilleuse pour pouvoir la corriger!
    Oui j'ai déjà corrigé cette erreur et ça marche.
    La ligne devient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dist = abs(neg_list(1:neg_pos,3)-double(reg_mean));
    Maintenant je n'ai aucune erreur mais le code ne marche pas.
    Je peux dire que malheureusement je n'ai aucune erreur parceque si j'en ai je vais savoir la ligne erronée et la corriger mais maintenant je suis bloquée
    Regarde attentivement l'exemple fourni par la même occasion, et demande-toi à quoi sert réellement ce seuil.
    J'ai pas compris,pourriez vous m'expliquer plus précisemment?Merci

  14. #14
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Marie_7 Voir le message
    Oui j'ai déjà corrigé cette erreur et ça marche.
    Sauf que ce n'était pas à ce niveau qu'il fallait la corriger.
    Je t'ai dit que cette fonction marchait pas touche !
    Citation Envoyé par Marie_7 Voir le message
    J'ai pas compris,pourriez vous m'expliquer plus précisemment?Merci
    L'exemple fourni dans l'entête de la fonction (lignes 21-24)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    % I = im2double(imread('medtest.png'));
    % x=198; y=359;
    % J = regiongrowing(I,x,y,0.2); 
    % figure, imshow(I+J);
    Il y a un élément qui devrait te faire tilter

  15. #15
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 275
    Points : 70
    Points
    70
    Par défaut
    ah oui merciiiii ça marche maintenant

  16. #16
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 275
    Points : 70
    Points
    70
    Par défaut
    Bonsoir,
    J'ai remarqué que le choix des coordonnées x et y du germe dans le programme principale n'est pas suffisant. Il faut que les germes, non pas un seul germe, soient choisis automatiquement selon l'image entrée. Comment je peux donc implémenter ça SVP ???

Discussions similaires

  1. Segmentation par croissance de région
    Par ali gh dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 08/09/2014, 21h41
  2. Segmentation d'images par croissance de régions
    Par BakkariA dans le forum Images
    Réponses: 12
    Dernier message: 15/08/2012, 22h42
  3. Segmentation par croissance de région
    Par Marie_7 dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 14/05/2012, 16h22
  4. Segmentation par croissance de région
    Par lanlan dans le forum Traitement d'images
    Réponses: 36
    Dernier message: 25/05/2009, 14h35
  5. segmentation par croissance de region!!!!
    Par Monsieurabc dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 22/03/2008, 16h07

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