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 :

Détection de contour d'une certaine couleur


Sujet :

Images

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2017
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Détection de contour d'une certaine couleur
    Bonjour à tous,
    Je suis étudiant en médecine et je fais dans mon cursus médical un M2 d'imagerie où l'on utilise pas mal MatLab.
    Cependantt je suis un véritable débutant et je suis loin de maîtriser ce logiciel...
    Je me dépatouille de certaines choses mais d'autres restent un mystère et je vous prie de m'excuser par avance si ma question vous paraît triviale...

    Je dispose d'images (en l'occurrence ici jpeg mais que j'utiliserai probablement en png) où un polygone vert est déjà tracé (d'une image à l'autre ce polygone n'a pas la même forme donc impossible d'appliquer un masque prédéfini) :

    Nom : Image1.jpg
Affichages : 785
Taille : 11,6 Ko
    Nom : Image7.jpg
Affichages : 748
Taille : 9,4 Ko
    Nom : Image10.jpg
Affichages : 742
Taille : 5,6 Ko

    L'idée est de ne conserver que ce qu'il y a à l'intérieur du polygone vert.

    Est-ce simple à faire ? Pourriez-vous me donner des pistes pour y arriver ?

    Merci de votre aide !

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 352
    Points
    352
    Par défaut
    c'est assez simple oui
    ton image va être chargé sur 3 canaux
    si ton image est en niveau de gris avec uniquement le polygone en vert, il te suffit de rechercher les pixel pour lesquel il y a un grand gap entre le canal vert et les 2 autre canaux
    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ind=find(abs(I(:,:,2)-(I(:,:,1))>10)

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2017
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par gpcbitnik38 Voir le message
    c'est assez simple oui
    ton image va être chargé sur 3 canaux
    si ton image est en niveau de gris avec uniquement le polygone en vert, il te suffit de rechercher les pixel pour lesquel il y a un grand gap entre le canal vert et les 2 autre canaux
    exemple :

    ind=find(abs(I(:,:,2)-(I(:,:,1))>10)
    Merci. Mais du coup cela me renvoie les pixels qui sont verts ?
    Comment je peux faire ensuite pour ne garder que ce qu'il y a à l'intérieur du polygone ?

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    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 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Pourrais-tu nous faire parvenir une image de taille réelle ?
    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)

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2017
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Elles sont en taille réelle (je les exporte d'un logiciel d'échographie).
    Là je les ai rognées pour n'avoir que la région qui m'intéresse!

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    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 302
    Points : 52 882
    Points
    52 882
    Par défaut
    OK, je te conseille donc de ne pas utiliser le format JPEG mais bien plutôt un format type BMP, GIF ou PNG

    Car la compression JPEG fait des moyennes de pixels "voisins" (sauf dans sa version sans perte).
    Donc les pixels verts deviennent un mélange de vert et des niveaux de gris des pixels voisins.
    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)

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2017
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Jerome Briot Voir le message
    OK, je te conseille donc de ne pas utiliser le format JPEG mais bien plutôt un format type BMP, GIF ou PNG

    Car la compression JPEG fait des moyennes de pixels "voisins" (sauf dans sa version sans perte).
    Donc les pixels verts deviennent un mélange de vert et des niveaux de gris des pixels voisins.
    Ca marche! J'aurai accès à ma base d'images demain matin, je pourrai les extraire en PNG probablement, et je vous les soumettrai à nouveau.
    Merci beaucoup et à demain ;-)

  8. #8
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    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 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Avec quel logiciel traces-tu les contours verts ?
    N'y a-t-il pas moyen de les exporter différemment ?
    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)

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2017
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Jerome Briot Voir le message
    Avec quel logiciel traces-tu les contours verts ?
    N'y a-t-il pas moyen de les exporter différemment ?
    En fait c'est un logiciel de traitement d'image d'échographies développé par le constructeur. La ligne verte correspond à la segmentation automatique de l'anneau aortique faite par le logiciel. Il y a éventuellement moyen d'exporter l'image en DICOM, en espérant pouvoir atteindre les coordonnées du contour vert et ensuite d'extraire ce qu'il y a dedans, mais grosso modo j'ai 3 semaines pour mener à bien ce projet, et j'ai peur de me lancer dans qq chose qui me dépasse.

    En gros l'idée c'est :
    - extraire ce qu'il y a dans le contour vert
    - segmenter les pixels les plus intenses (correspondant à des signaux calciques) grâce à la méthode de Chan-Vese
    - utiliser le masque obtenu pour appliquer un algorithme de croissance de région dans le masque sélectionné grâce au CV

    Comme vous le constatez... je bloque déjà à cette étape

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2017
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Bonjour à tous,

    J'ai un peu prospecté à droite et à gauche, et pour l'instant je ne peux exporter mes images qu'en DICOM. Pas possible de les exporter en Lossless JPEG à priori.......

    Vous pensez que c'est quand même jouable ? L'idée est de segmenter et de ne garder que ce qu'il y a à l'intérieur du cercle vert...Mais il est possible de ne pas se servir de la couleur pour segmenter (je ne sais pas si c'est techniquement réalisable ou non ?).

    Merci de votre aide.

  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 302
    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 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Voici un début de solution.

    C'est très naïf et pas très robuste mais ça donne une idée de ce que l'on peut obtenir…

    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
    I = imread('Image1.jpg', 'jpg');
     
    C = abs(I(:,:,2)-(I(:,:,1)))>20;
     
    figure(1)
    clf
    subplot(221)
    image(I)
    axis image
    subplot(222)
    imagesc(C)
    axis image
     
    for i = 1:size(C,1)    
        idx = strfind(C(i,:), [0 1]);    
        if any(idx)
            for j = 1:numel(idx)-1           
                C(i,idx(j):idx(j+1)) = 1;            
            end
        end    
    end
     
    subplot(223)
    imagesc(C)
    axis image
     
    subplot(224)
    I = cat(3, I(:,:,1).*uint8(C),I(:,:,2).*uint8(C),I(:,:,3).*uint8(C));
    image(I)
    axis image
    L'épaisseur du contour jaune vient de la compression JPEG.

    Si tu veux te passer du contour vert sur l'image résultat, il suffit d'enregistrer la même image avec et sans le contour puis d'appliquer le masque binaire à l'image sans le contour vert.
    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)

Discussions similaires

  1. [XL-2013] Verrouiller toutes les cellules sauf celles d'une certaine couleur
    Par borisp dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 30/05/2016, 17h48
  2. Détection du contour d'une image
    Par ILMaGo dans le forum 2D
    Réponses: 0
    Dernier message: 07/12/2013, 00h41
  3. Trier par ordre alphabétique des onglets d'une certaine couleur
    Par shimuno dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/10/2011, 17h54
  4. [Débutant] barycentre des pixels d'une certaine couleur
    Par morteterre dans le forum Images
    Réponses: 3
    Dernier message: 06/05/2010, 18h12
  5. Détection de contours sur une vidéo
    Par willem77 dans le forum OpenCV
    Réponses: 0
    Dernier message: 11/09/2007, 13h45

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