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 :

Fermer des contours suite à une détection par filtre de Canny


Sujet :

Images

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 78
    Points : 25
    Points
    25
    Par défaut Fermer des contours suite à une détection par filtre de Canny
    Bonjour,

    suite à cette discussion, j'ai une autre question ....

    En fait ce que je cherche à faire c'est delimiter sytematiquement l'extension de mon panache afin de pouvoir calculer des stat à l'interieur de la surface délimitée (genre concentrations max, moyennes...)

    Le probleme est que ma limite ne "ferme" pas le panache. (voir fichier joint)
    J'ai lu pas mal de doc et j'ai pensé utiliser des fonction comme imerode, imdilate ou imferme pour arranger ca....

    Est ce que c'est une bonne idée ? Y'a t'il d'autres pistes que je pourrait suivre pour mieux délimiter mon panache?

    Si quelqu'un peut éclairer ma lanterne ?
    Images attachées Images attachées  

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 304
    Points : 52 886
    Points
    52 886
    Par défaut
    Pourquoi ne pas regarder du coté des techniques de seuillage ?

    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
    TSMe=load('Poly-TSMc-06-mask.txt');
     
     
    BW = TSMe>3;
    L=bwlabel(BW);
    reg = regionprops(L,'area');
     
    [pasbesoin,idx]=max([reg.Area]);
     
    L = L==idx;
     
        [nblon nblat]=size(TSMe);
        lat = linspace(-1.9,-1.3,nblat);
        lon = linspace(43.9,43.2,nblon);
        [X,Y]=meshgrid(lat,lon);
     
        figure
        subplot(221)
        pcolor(X,Y,TSMe)
        caxis([0 20]);
        shading interp
        axis equal tight
        title('Image originale')
     
        subplot(222)
        imagesc('xdata',X([1 end]),'ydata',Y([1 end]),'cdata',double(BW))
        axis image
        title('Image seuillée')
     
        subplot(223)
        imagesc('xdata',X([1 end]),'ydata',Y([1 end]),'cdata',double(L))
        axis image
        title('Masque utile')
     
        TSMe = TSMe.*L;
     
        subplot(224)
        pcolor(X,Y,TSMe)
        caxis([0 20]);
        shading interp
        axis equal tight
        title('Image masquée')
    Juste une idée... à approfondir bien entendu
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Membre habitué Avatar de Lost in
    Inscrit en
    Janvier 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 268
    Points : 126
    Points
    126
    Par défaut
    Salut,

    Si tu cherches une méthode de fermeture des contours je te propose d'utiliser l'enveloppe convexe.

    A+
    Si vous acceptez vos possibilités présentes, vous progresserez certainement à l'avenir. en revanche si vous niez vos limites, vous ne vous en libérerez jamais.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 78
    Points : 25
    Points
    25
    Par défaut
    Bonjour Dut, Lost in et tout le monde.

    Dut, ta méthode est vraiment très tres joli pour l'image proposée.

    Si j'ai bien compris tu seuille sur les valeurs < 1 ?
    Le problème c'est que je doit travailler sur une base de données qui rassemblera plusieures centaines d'images et que malheuresement ce n'est pas possible d'imposer un seuil fixe (trop subjectif et tres variable en fonction des images).

    J'était partie plus sur des histoire de gradient, car le but était de ne pas imposer de seuil. Après le problème c'est que même en se servant de canny, je doit imposer ma valeur de gradient.....

    Du coup jsuis un peu bloquée....

    Existe t'il des méthode de seuillage qui soit totalement indépendante (j'entend qui ne necessite pas d'imposer de valeur fixe)???

    Lost in, je ne sais pas du tout ce qu'est la méthode de l'enveloppe convexe, mais je vais regarder ca!!

    Merci beaucoup pour votre aide!

  5. #5
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 304
    Points : 52 886
    Points
    52 886
    Par défaut
    Citation Envoyé par Krokro00 Voir le message
    Existe t'il des méthode de seuillage qui soit totalement indépendante (j'entend qui ne necessite pas d'imposer de valeur fixe)???
    Tu devrais poser ta question dans le forum Algorithmes > Images

    Pense à montrer plusieurs images où on voit nettement les différences sur la zone à identifier...
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 78
    Points : 25
    Points
    25
    Par défaut
    Bonjour Dut et le forum

    Après (longue...) réflexion ,je vais axer mon étude sous deux aspect :

    - non supervisée (la faut encore que je réflechisse )
    - et supervisée/avec valeur fixes.

    Je voulais savoir s'il était possible à partir de ton programme de seuillage de récuperer, pour les sufaces répondant à la condition "> à telle valeur de concentration" ,non seulement l'aire la plus grande , mais également la plus proche d'un point de coordonnées X,Y??

    Ya t'il une fonction qui fasse ca? ou faut il écrire du code?

    merci encore!!

  7. #7
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 304
    Points : 52 886
    Points
    52 886
    Par défaut
    Citation Envoyé par Krokro00 Voir le message
    la plus proche d'un point de coordonnées X,Y??
    C'est vague ?

    La zone dont le centre est le plus proche de P(X,Y) ?
    La zone qui possède le point sur son contour le plus proche de P(X,Y) ?
    ...

    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 78
    Points : 25
    Points
    25
    Par défaut
    En fait, dans ma tête ça serait plutôt :

    1°) relever les zones (répondant à la condition) qui possède un/des points sur leur contours à une distance inférieure de X pixel de P(lon,lat) (pour X faudrait que je teste).

    1°) et parmi ces zones, garder la plus grande.

    Après comment définir la distance ?? Est ce qu'on est obligé de regarder verticalement ou horizontalement à partir du pixel P(lon, lat) ?
    Ou est ce qu'il est possible à partir du pixel P(lon, lat) de regarder dans toutes les directions?

  9. #9
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 304
    Points : 52 886
    Points
    52 886
    Par défaut
    Citation Envoyé par Krokro00 Voir le message
    Après comment définir la distance ?? Est ce qu'on est obligé de regarder verticalement ou horizontalement à partir du pixel P(lon, lat) ?
    Ou est ce qu'il est possible à partir du pixel P(lon, lat) de regarder dans toutes les directions?
    Je ne comprends pas bien... tu veux savoir comment on calcul la distance ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    d = sqr((X-lon).^2+ (Y-lat).^2)
    C'est ça ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 78
    Points : 25
    Points
    25
    Par défaut
    Ok, ma question pour la distance était bête.... . Je pensait qu'il fallait compter soit les pixels sur l'horizontal, soit les pixels sur la verticale... bref faudrait que je révise un peu mes maths du collège.....

    Donc du coup ca reste faisable de faire ?? :

    - je garde les zones (répondant à TSMe>3) qui sont située à moins de X distance de mon point de ref
    - et parmis ces zones je garde la plus grande ??

  11. #11
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 304
    Points : 52 886
    Points
    52 886
    Par défaut
    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
    TSMe=load('Poly-TSMc-06-mask.txt');
     
    % Image binarisée
    BW = TSMe>3;
    % Labelisation
    [L, num] = bwlabel(BW);
    % Statistiques sur chaque région
    reg = regionprops(L);
     
    % Point de référence
    X = rand*size(BW,2);
    Y = rand*size(BW,1);
     
    % Distance de chaque point de chaque région
    % Seule la plus petite est conservée
    for n=1:num
     
        [y,x] = find(L == n);  
        d(n) = min(sqrt((X-x).^2+(Y-y).^2));
     
    end
     
    % Discrimination des distances 
    idx = find(d<150); % Modifier le 150
    % Tri des régions selon leur taille
    [pasbesoin,idx2] = sort([reg(idx).Area]);
    % Récupération de la région la plus proche & la plus grande
    idx = idx(idx2(end));
     
    figure
     
    subplot(131)
    imagesc(BW)
    axis image
     
    hold on
    plot(X,Y,'gs')
     
    subplot(132)
    imagesc(L)
    axis image
     
    hold on
    plot(X,Y,'gs')
    hold on
    plot(reg(idx).Centroid(1),reg(idx).Centroid(2),'ro')
     
    subplot(133)
    imagesc(TSMe.*(L==idx))
    axis image
     
    hold on
    plot(X,Y,'gs')
    hold on
    plot(reg(idx).Centroid(1),reg(idx).Centroid(2),'ro')
    A tester
    Images attachées Images attachées  
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 78
    Points : 25
    Points
    25
    Par défaut
    Tout d'abord merci (encore !!) pour ta réponse!

    J'ai voulu integrer ton code dans le mien. Pour cela j'ai besoin de rajouter des indices aux variables (ici exemple avec "pl")).
    Quand je lance le programme, j'ai le message d'erreur :

    ??? Error: Functions cannot be indexed using {} or . indexing.
    Apparement cela vient des lignes de code en rouge...
    Je ne pense pourtant pas avoir modifié quoi que ce soit en ajoutant des "pl"....


    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
    
    TSMpl=load('Poly-TSMc-06-mask.txt');
    Valseuilpl=3
    %----------------------------------------
    
    if exist('Valseuilpl','var')==1; disp('seuil de concentration')
    
    BWpl = TSMpl>Valseuilpl;
    [Lpl, numpl] = bwlabel(BWpl); regpl = regionprops(Lpl);
    Xpl = 130;Ypl = 186;  
    for npl=1:numpl 
        [ypl,xpl] = find(Lpl == npl);  
        dpl(npl) = min(sqrt((Xpl-xpl).^2+(Ypl-ypl).^2));
    end
    idxpl = find(dpl<50);
    [pasbesoin,idxpl2] = sort([reg(idxpl).Area]);idxpl = idxpl(idxpl2(end));
    
    PANACHEpl = TSMpl.*(L==idxpl) % calcul des paramètres statistiques au sein du panache
    MAXPANACHEpl=max(max(PANACHEpl))
    MINPANACHEpl=min(min(PANACHEpl))
    MOYENNEPANACHEpl=mean(mean(PANACHEpl))
    MEDIANPANACHEpl=median(median(PANACHEpl))
    end

  13. #13
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Bonjour,

    Moi je n'y comprends rien mais juste :
    c'est quoi la variable "reg" là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sort([reg(idxpl).Area])
    Elle n'est pas définie dans le code avant.
    Par contre il y a une variable regpl.
    Et comme reg est une fonction de MATLAB, le message d'erreur pourrait correspondre.
    Règles du Forum

    Adepte de la maïeutique

  14. #14
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 304
    Points : 52 886
    Points
    52 886
    Par défaut
    Citation Envoyé par caro95470 Voir le message
    Et comme reg est une fonction de MATLAB, le message d'erreur pourrait correspondre.
    Cette fonction fait partie de la Control System Toolbox pour être précis
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 78
    Points : 25
    Points
    25
    Par défaut
    Je regarde ca! Merci pour la piste!!!

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 78
    Points : 25
    Points
    25
    Par défaut
    Effectivement le probleme venait bien de reg.
    En ecrivant "regpl" partout, ca à l'air de fonctionner:

    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
    TSMpl=load('Poly-TSMc-06-mask.txt');
    Valseuilpl=3
    %----------------------------------------
    
    if exist('Valseuilpl','var')==1; disp('seuil de concentration')
    
    BWpl = TSMpl>Valseuilpl;
    [Lpl, numpl] = bwlabel(BWpl); 
    regpl = regionprops(Lpl);
    Xpl = 130;Ypl = 186;  
    for npl=1:numpl 
        [ypl,xpl] = find(Lpl == npl);  
        dpl(npl) = min(sqrt((Xpl-xpl).^2+(Ypl-ypl).^2));
    end
    idxpl = find(dpl<50);
    [pasbesoin,idxpl2] = sort([regpl(idxpl).Area]);idxpl = idxpl(idxpl2(end));
    
    PANpl = TSMpl.*(L==idxpl) % calcul des paramètres statistiques au sein du panache
    MAXPANpl=max(max(PANACHEpl))
    MINPANpl=min(min(PANACHEpl))
    MOYPANpl=mean(mean(PANACHEpl))
    MEDPANpl=median(median(PANACHEpl))
    SURFACEpl =size(PANpl)
    end
    Par contre quelques petites questions pour mieux comprendre :

    - dans l'aide matlab il ya marqué pour la fonction bwlabel :"Label connected components in a binary image" --> c'est cette fonction qui me connecte les valeurs > au seuil et me crée mes régions??

    -
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    regpl = regionprops(Lpl);
    regionprops :"Positive integer elements of L correspond to different regions" --> ca donne une valeur de 1 à X à mes différentes régions?


    - d'une question plus pratique, si j'ai des valeurs NaN au milieu d'une "région" , par exemple dans le cas de mon image, si j'avais des NaN au milieu de mon panache :
    - est ce que la région serait quand même prise en compte?
    - ou faut il que je donne à mes NaN des valeurs genre 66666 pour qu'ils ne gènent pas la "création" de la région?

    - Enfin, je pensait pouvoir avoir la surface de ma région selectionnée avec size(idx(n)) .... mais non.....avec size(PANpl) ca ne marche pas non plus ....

    .....

  17. #17
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 304
    Points : 52 886
    Points
    52 886
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MAXPANpl=max(max(PANACHEpl))
    =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MAXPANpl = max(PANACHEpl(:))


    Citation Envoyé par Krokro00 Voir le message
    - dans l'aide matlab il ya marqué pour la fonction bwlabel :"Label connected components in a binary image" --> c'est cette fonction qui me connecte les valeurs > au seuil et me crée mes régions??
    Pas mieux

    Citation Envoyé par Krokro00 Voir le message
    regionprops :"Positive integer elements of L correspond to different regions" --> ca donne une valeur de 1 à X à mes différentes régions?
    Euh non... ça c'est BWLABEL qui le fait. REGIOPROPS calcule des paramètres relatifs à chaque région : surface, centre, axe d'inertie...

    Citation Envoyé par Krokro00 Voir le message
    - ou faut il que je donne à mes NaN des valeurs genre 66666 pour qu'ils ne gènent pas la "création" de la région?
    Je dirais des valeurs supérieurs ou égales à la valeur du seuil utilisé si tu souhaites que le "trou" appartiennent à la région, sinon des valeurs inférieurs au seuil

    Citation Envoyé par Krokro00 Voir le message
    - Enfin, je pensait pouvoir avoir la surface de ma région selectionnée avec size(idx(n)) .... mais non.....avec size(PANpl) ca ne marche pas non plus
    Et la documentation alors ? => Measure properties of image regions : Area

    Sinon :

    Ce sera tout ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 78
    Points : 25
    Points
    25
    Par défaut
    Je sais, ça fait beaucoup de questions...j'ai honte...
    mais j'essai de comprendre au max, pour essayer de me débrouiller toute seule pour la suite ... même si c'est pas gagné!!
    ça sera tout ... j'espère pour un moment....

    Merci encore énormement...

  19. #19
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    j'ai pas eu le courage de tout lire dans le detail (je m'en excuse)

    je propose une méthode plus simple, et plus "fiable" pour un seuillage non supérvisé.

    pourquoi n'essaierais tu pas avec un calcul de gradient? je m'explique: tu établis une matrice gradient suivant les lignes, une autre suivant les colones , tu calcule son module ( sqrt(GradX^2+GradY^2) ) , et tu établis tes seuils. ça fonctionneras comme par magie vu que tes zones seront définies suivant les derivés des pixels, et non suivant la valeur du pixel en lui meme.

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 78
    Points : 25
    Points
    25
    Par défaut
    Merci pour ta réponse Babezien.

    Est ce que ce n'est pas ce que fait la fonction "gradient" de matlab"?

Discussions similaires

  1. faire apparaitre le contour d'une image par filtre SOBEL
    Par bilzzbenzbilz dans le forum Traitement d'images
    Réponses: 33
    Dernier message: 04/03/2009, 18h18
  2. [Debutant] changer des images dans une div par une fonction javascript
    Par raul_le_vieux dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/06/2007, 09h35
  3. Utilisation des sessions suite à une connexion
    Par doncandid dans le forum Langage
    Réponses: 4
    Dernier message: 05/11/2006, 19h57
  4. Réponses: 3
    Dernier message: 26/07/2006, 14h58
  5. [MySQL] Modification des données d'une base par les membres
    Par pod1978 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 22/03/2006, 17h25

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