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

ImageJ Java Discussion :

Macro création et placement ROI sur stack d'images (imagej)


Sujet :

ImageJ Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Macro création et placement ROI sur stack d'images (imagej)
    Bonsoir à tous,
    Dans le cadre de mes études, je dois réaliser une macro permettant de créer une ROI circulaire s'appliquant à un stack d'images qui correspond à un objet cylindrique sur fond noir.
    Cette ROI doit etre centrée automatiquement sur la partie circulaire du cylindre (vu du dessus donc), et faire 80% de cette dernière.

    Je débute dans ce domaine, et je ne sais pas du tout comment partir.

    Quelqu'un peut m'aider?

    Merci beaucoup

  2. #2
    Membre habitué Avatar de Tchoukatroc
    Homme Profil pro
    Soupière
    Inscrit en
    Mai 2014
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Soupière
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2014
    Messages : 99
    Points : 141
    Points
    141
    Par défaut
    Bonjour,

    Est-ce que tu pourrais nous montrer une de tes images? Pour ma part, je commencerais par segmenter l'image pour isoler le cylindre en utilisant la fonction threshold de imageJ puis binariser l'image (je ne sais pas si c'est la meilleure méthode d'utiliser le threshold, peut être d'autres auront une meilleure méthode). L'idéal serait d'avoir les pixels de ton fond avec la valeur 0 et les pixels du cylindre avec la valeur 1. Une fois l'image binarisée, on peut trouver le diamètre et le centre du cylindre, en cherchant quelle ligne de pixel contient le plus de pixels cotes à cotes ayant la valeur 1. En ayant le diamètre et les coordonnées du centre du cylindre, il suffira de placer une région circulaire au centre ayant un rayon de 80% du diamètre. Je peux t'aider pour le code si tu es débutant en macro imageJ.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Je te remercie pour ta réponse. Non, je n'ai pas encore l'image à ma disposition.
    Je vais essayer de voir comment coder ça en trifouillant dans imagej, et en me servant de la partie built-in macros functions sur leur site.
    Je te tiens au courant

  4. #4
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    C'est du traitement d'images, donc une image nous aiderait VRAIMENT.
    Si c'est sur un fond noir, commence donc pas un seuillage pour avoir une segmentation basique.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    J'ai réalisé ma macro; j'arrive effectivement à centrer ma roi au milieu du "disque", le problème est que cette dernière n'est pas placée avec la précision que je recherche (elle est très légèrement décalée), ce qui est surement du au seuillage.
    Voici mon code pour la récupération des coordonnées du point d'origine de la ROI et du diamètre du disque:

    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
     
    //SEUILLAGE
    run("8-bit");
    setAutoThreshold("Default dark");
    run("Convert to Mask");
    run("Fill Holes");
     
    //ALGO
    d1=0;
    d2=0;
    degaux=0;
    c2=0;
    x=0;
    y=0;
     
    for(j=getHeight();j>=0;j--){
      for(i=0;i<=getWidth();i++){
        c1=getPixel(i,j);
        if (c1==255){
          d1++;                     //d1 nouveau diamètre que l'on incrémente à chaque fois que le pxl est noir(255)
        }
        if (c1==0 && c2==255){      //quand on est au 1er pxl blanc(0) après pixels noirs     
          if (d1<d2){               //si nouveau diametre < ancien, c'est le bon, sinon maj variables
            break;
          } else if (d1==d2){
            degaux++;               //variable permettant de compter les diametres égaux
            d1=0;
          } else {                  //mise à jour de toutes les variables
            d2=d1;                  //d2 ancien diamètre stocké
            d1=0;
            x=i-1;
            y=j-degaux/2;
            degaux=0;
          } 
        }
        c2=c1;
      }
    }
     
    //RECUPERATION COORDONNEES POINT DE CREATION ROI
    d=0.8*d2;                 //taille roi doit faire 80% de la taille du disque
    x=x-(d+d2)/2;
    y=y-(d+d2)/4;
    Sinon existe-t-il une autre méthode plus précise que la binarisation couplée à la recherche du diamètre?
    Voici mon image:

    Nom : 1421745222-image.jpg
Affichages : 799
Taille : 3,7 Ko

  6. #6
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Est ce que l'on peut avoir l'image d'origine aussi, parce que là le résultat semble plutôt correcte.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    c'est l'image d'origine

  8. #8
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    La forme est déjà presque parfaitement circulaire.
    Un simple barycentre te donnera alors un résultat presque parfait.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Effectivement, la méthode du barycentre marche très bien, je te remercie.

  10. #10
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Si plus tard tu as des formes moins parfaites, une transformée de hough pour des cercles sera sans doute la solution.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création de masque de ROI sur imageJ
    Par hello768 dans le forum ImageJ
    Réponses: 1
    Dernier message: 21/03/2015, 20h27
  2. [XL-2010] Création macro pour répéter une formule sur plusieurs lignes
    Par JoOz-ZeP43 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/10/2014, 18h06
  3. [XL-2010] PB de création d'un graphique sur une feuille créée dans une macro
    Par ecailley dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/04/2013, 15h16
  4. Macro création graphique sur différents feuillets
    Par sehou dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/03/2013, 08h58
  5. Trouver des centres de particules sur stack d'images en Z
    Par babarpapa dans le forum Traitement d'images
    Réponses: 19
    Dernier message: 03/11/2006, 08h30

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