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 ImageJ sur plusieur images


Sujet :

ImageJ Java

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Macro ImageJ sur plusieur images
    Bonjour tout le monde,

    Tout d'abord, je tiens à dire que je me suis mis à ImageJ depuis peu pour faire du traitement d'image (mesure de surface et de teintes RVB) et que je n'y connais rien en programmation.

    J'ai réalisé ma première macro grâce à l'outils très simple d'utilisation d'ImageJ (à savoir Plugins/Macros/Record...) qui permet de faire les mesures.
    Cependant, cette macro ne marche que pour une seule image à la fois mais ça fonctionne bien.

    Maintenant, j'ai plusieurs images que je nomme A, B, C, D et E de manière systèmatique et j'ai crée une nouvelle macro pour me qu'elle me fasse le traitement sur ces 5 images. Mais malheureusement, tout n'est pas bien qui fini bien, car si il me manque une des images (que se soit, A, B, C, D ou E), la macro ne fait rien. Il me faut obligatoirement les 5.
    J'ai bien essayé avec la fonction "if/else" mais n'y connaissant pas grand chose ça n'a pas aboutit.

    Voilà ma macro :
    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
    run("Set Measurements...", "area mean redirect=None decimal=3");
    selectWindow("A.bmp");
    run("RGB Stack");
    setSlice(3);
    setAutoThreshold("Default");
    //run("Threshold...");
    setThreshold(0, 80);
    //setTool("wand");
    doWand(1312, 824);
    run("Measure Stack");
    doWand(3292, 816);
    run("Measure Stack");
    doWand(2312, 1360);
    run("Measure Stack");
    close();
    selectWindow("B.bmp");
    run("RGB Stack");
    setSlice(3);
    ...
    ...
    selectWindow("E.bmp");
    run("RGB Stack");
    setSlice(3);
    setAutoThreshold("Default");
    //run("Threshold...");
    setThreshold(0, 80);
    //setTool("wand");
    doWand(1312, 824);
    run("Measure Stack");
    doWand(3292, 816);
    run("Measure Stack");
    doWand(2312, 1360);
    run("Measure Stack");
    close();
    Et ma question est donc, comment puis faire pour que ma macro fonctionne même si une image est abasente(par exemple: si l'image A est absente, la macro passe à l'image B; et si l'image B est absente, la macro passe à l'image C,... ainsi de suite)?
    Ou est-ce que ma macro est juste trop pourrie et qu'il y a nettement plus simple à faire pour que ça ne bug pas?

    Je vous remercie par avance,
    Bien cordialement,

    Xander

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 58
    Points : 13
    Points
    13
    Par défaut
    bonjour,
    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
    run("Set Measurements...", "area mean redirect=None decimal=3");
     list = getList("window.titles");
     for (i=0; i<list.length; i++){
    selectWindow(list[i]);
    run("RGB Stack");
    setSlice(3);
    setAutoThreshold("Default");
    //run("Threshold...");
    setThreshold(0, 80);
    //setTool("wand");
    doWand(1312, 824);
    run("Measure Stack");
    doWand(3292, 816);
    run("Measure Stack");
    doWand(2312, 1360);
    run("Measure Stack");
    close();}
    il ouvre les images ouvertes

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Merci pour cette réponse rapide,
    Je n'ai pas eu le temps de tester cette macro mais je vais le faire dès cette aprés-midi.

    Cordialement,
    Xander

  4. #4
    Candidat au Club
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Re-Bonjour,

    J'ai donc testé à l'instant la macro. Après avoir copier/coller le code dans un fichier texte, j'ai ouvert mes images avec ImageJ mais quand j'éxécute la macro (Plugins/Macros/Run...), il ne se passe rien, pas d'affichage de résultats, rien.

    Es-je fait une erreur dans la procédure?
    Existe-t-il un lexique du language pour les macros ou autres?

    Merci d'avance,
    Cordialement,

    Xander

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 58
    Points : 13
    Points
    13
    Par défaut
    bonjour,
    il faut que ta macro soit enregistrer sous format txt ok

  6. #6
    Candidat au Club
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    C'est bien le cas, le fichier est en .txt.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 58
    Points : 13
    Points
    13
    Par défaut
    Bonjour,
    chez moi fonctionne tres bien. dit moi il te donne des erreurs quand tu le lance ou pas?

  8. #8
    Candidat au Club
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Bah non, quand je lance la macro il ne se passe strictement rien :s

    J'ai bien copier/coller ta macro dans un fichier .txt que j'ai laissé sur le bureau, une fois que j'ai ouvert mes photos avec ImageJ, je lance la macro (Run ou Install) et juste rien. Je pige pas d'ou ça peut venir.

    En tout cas, merci pour le temps que tu me consacres

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 58
    Points : 13
    Points
    13
    Par défaut
    de rienouvre tes images et essaye de partir sur plugins > macro>Edit ouvre ta macro et ensuite sur macros > runMacros et tu me diras si ca donne des erreurs

  10. #10
    Candidat au Club
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Je viens de faire ta manip et bizarrement la macro s'est éxéctuée mais uniquement sur une seule image.
    j'ai donc réessayé en faisant plugins/macro/run... et en gardant la fenêtre du Plugins/Macro/Edit et ça a marché mais aussi sur une seule image :s
    J'ai tout fermé et refait uniquement plugins/macro/run... et re-rien. Je comprend vraiment rien.
    Après, je tiens à présisé que c'est sur l'Ordi de l'entreprise parce que la macro que je veux faire est dans le cadre de mon stage. Donc, c'est peut être juste un problème lié à mon PC. La ça va être le weekend, je me remet dessus Lundi.
    D'ici là, je vais creuser de mon côté.

    Encore merci pour ton aide.

  11. #11
    Candidat au Club
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    N'ayant pas réussi à résoudre mon problème et à me servir de ta macro (certainement à cause de l'ordinateur du boulot, et aussi parce que je ne suis pas doué). J'ai procédé autrement en rajoutant des raccourci clavier ce qui permet d'aller plus vite tout en contrôlant que le traitement de l'image est bien réalisé par ImageJ. A savoir le "a" pour procédé au traitement de l'image, "z" pour fermer l'image ce qui permet de vérfier que l'image à bien été traitée avant de la fermer et "e" pour faire un "Measure Stack" au cas ou l'image n'aurait pas été traitée correctement.

    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
    macro "Aire & teintes (Photo 3) [a]"{
    run("RGB Stack");
    setSlice(3);
    setAutoThreshold("Default");
    //run("Threshold...");
    setThreshold(0, 80);
    run("Set Measurements...", "area mean redirect=None decimal=3");
    //setTool("wand");
    doWand(1284, 800);
    run("Measure Stack");
    doWand(3312, 880);
    run("Measure Stack");
    doWand(2264, 1332);
    run("Measure Stack");}
    macro "CLOSE [z]"{
    close();}
    macro "MEASURE RGB [e]"{
    run("Measure Stack");}
    Merci pour ton aide et à bientôt.

    Cordialement,
    Xander

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

Discussions similaires

  1. Réponses: 27
    Dernier message: 06/06/2008, 11h21
  2. Réponses: 1
    Dernier message: 15/05/2008, 20h11
  3. Copier une figure sur plusieurs images
    Par pwfsic dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 18/06/2007, 15h02
  4. Macro exécutée sur plusieurs onglets
    Par Aizen64 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/06/2007, 09h59
  5. Fade in sur plusieurs images mais pas simultanément
    Par dynexd dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/02/2007, 09h10

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