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 :

macros en image J


Sujet :

ImageJ Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 9
    Par défaut macros en image J
    bonjour à tous
    je suis une étudiante en imagerie et j'utilise récemment l'image J pour traiter des images .

    je voulais sélectionner la première image dans un stack contenant 862, j'ai utilisé set slice(1) mais je n'ai pas réussi .

    Pour plus expliquer j'ai une liste qui contient des n stacks d'images et je voulais sélectionner la première image du chaque stack tout le long de la liste, ma macro était

    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
    j = 1
    m = 0
     
    //Select folder containing stacks to process.
    input = getDirectory("Choose substack Directory");
     
     
    //Create output folder.
    File.makeDirectory(input+"\Concatenate");
    output = input+"\selection"
     
    Dialog.create("File type");
    Dialog.addString("File suffix: ", ".tif", 5);
    Dialog.show();
    suffix = Dialog.getString();
     
     
    // DETERMINE NUMBER OF .TIF FILES ("m")
    list = getFileList(input);
       for (i=0; i<list.length; i++)
    	if (endsWith(list[i], suffix)) 
    		m = m+1;
     
    setBatchMode(true);  
    list = getFileList(input);
       for (i=0; i<list.length; i++)
    	setSlice(1) {
    		processFile(input, output, list[i]);
    		j = j+1;
    		showProgress(j);
     
    }
     
    setBatchMode(false);
     
    function processFile(input, output, file) {
     
    	open(list[i]);
    	run("selection",+ " image1=" +list[i] );
    	saveAs("tiff", input+"\\selection \\"+ list[i]);
    	close();
    	}
    print(j+1, " substacks were concatenated 2 by 2 and are available in the folder: " + input+"\Concatenate");
    Merci pour votre aide

  2. #2
    Membre émérite
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Par défaut
    Bonjour,

    un petit détail tout d'abord : merci de préciser le message d'erreur qui apparait, cela permet de mieux comprendre ce qui peut ne pas marcher...

    Dans le script que tu proposes, j'ai l'impression que la commande "setSlice" est mal placee. Je la verrais plutot *apres* l'accolade, alors que là elle est avant... Du coup la syntaxe globale est curieuse, et c'est peut etre la raison du bug ?

    A++

  3. #3
    Membre éprouvé 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
    Par défaut
    Bonjour,

    Oui, envoie nous ton message d'erreur, ça sera plus facile de voir où est le problème. Je pense qu'il y a plusieurs erreurs. Déjà le setSlice qui n’est pas du bon coté de l'accolade comme l'a dit Kangourou, aussi tu n'utilises pas ta variable m une fois que tu as compté le nombre de tif, je pense que tu voulais l'utiliser dans la boucle for suivante. A la fin, je pense qu'il y a un problème avec cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    run("selection",+ " image1=" +list[i] );
    , je pense qu'il faudrait supprimer le + après la virgule. Tu as obtenu cette ligne du macro recorder? Quelle est cette fonction?

  4. #4
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 9
    Par défaut macros en image J
    Merci beaucoup pour votre réponse, j'ai modifie un petit peu dans le script mais toujours j'arrive pas à extraire les premières images de chaque stack, le message d'erreur est : " this command Requires a selection ".
    Mon script modifie :
    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
    m = 0
     
    //Select folder containing stacks to process.
    input = getDirectory("Choose substack Directory");
     
     
    //Create output folder.
    File.makeDirectory(input+"\Concatenate");
    output = input+"\Concatenate"
     
    Dialog.create("File type");
    Dialog.addString("File suffix: ", ".tif", 5);
    Dialog.show();
    suffix = Dialog.getString();
     
     
    // DETERMINE NUMBER OF .TIF FILES ("m")
    list = getFileList(input);
       for (i=0; i<list.length; i++)
    	if (endsWith(list[i], suffix)) 
    		m = m+1;
     
    setBatchMode(true);  
    list = getFileList(input);
       for (i=0; i<list.length; i=i + 1) {
    	 setSlice(1);
                        processFile(input, output, list[i]);
    }
     
    setBatchMode(false);
     
    function processFile(input, output, file) 
     
     
    	run("Selection...", "  title=" +list[i] );
    	saveAs("tiff", input+"\\Selection\\"+ list[i]);
    	close();

  5. #5
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 9
    Par défaut macros en image J
    concernant la commande + je l'utilise dans un autre script et ça marche sans aucune erreur mais je veux la modifier en tout cas , j'ai essayé d'écrire un autre script pour le même but mais malheureusement c par marcher, le message d'erreur était
    ';'expected in lin 38
    <run> (''Make Substack...", "Slices="+ slices) ;'
    le script est :
    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
    m = 0
     
    //Select folder containing stacks to process.
    input = getDirectory("Choose substack Directory");
    //Create output folder.
    File.makeDirectory(input+"\Concatenate");
    output = input+"\Concatenate"
     
    Dialog.create("File type");
    Dialog.addString("File suffix: ", ".tif", 5);
    Dialog.show();
    suffix = Dialog.getString();
     
     
    // DETERMINE NUMBER OF .TIF FILES ("m")
    list = getFileList(input);
       for (i=0; i<list.length; i++)
    	if (endsWith(list[i], suffix)) 
    		m = m+1;
    title=getTitle();
    selectWindow(title);
    run("Make Substack...", "  slices=1");
     
    title=getTitle();
    s = 1;
    while (s <= nSlices) {
      selectWindow(title);
      slices="+s+";
     run("Make Substack...", "  slices=" + slices);
      save(title + "-" + slices + ".tif");
      close();
      s ++;
    }

  6. #6
    Membre éprouvé 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
    Par défaut
    Bonjour,

    J'ai corrigé des trucs dans ta macro, maintenant, elle sauve la première image de chaque stack dans le dossier concatenate. Peux tu essayer pour voir si ça marche et si ça fait ce que tu veux?

    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
     
    m = 0
     
    //Select folder containing stacks to process.
    input = getDirectory("Choose substack Directory");
     
    //Create output folder.
    File.makeDirectory(input+ File.separator()+"Concatenate");
    output = input+ File.separator()+"Concatenate";
     
    Dialog.create("File type");
    Dialog.addString("File suffix: ", ".tif", 5);
    Dialog.show();
    suffix = Dialog.getString();
     
    setBatchMode(true);
    list = getFileList(input);
    for (i=0; i<list.length; i++) 
    {
    	if (endsWith(list[i], suffix))
    	{
    		m++;
    		open(input+list[i]);
    		Stack.setFrame(1);
    		processFile(output, list[i]);
    		close();
    	}
    }
     
    setBatchMode(false);
     
    function processFile(output, file)
    {
    	run("Duplicate...", " ");
    	saveAs("tiff", output+File.separator()+"Selection"+ list[i]);
    	close(); 
    }

Discussions similaires

  1. [PPT-2010] Macro Insertion Image depuis Excel
    Par fidecourt dans le forum VBA PowerPoint
    Réponses: 4
    Dernier message: 18/01/2011, 18h08
  2. [PPT-2003] Macro colle images
    Par manulemalin13000 dans le forum VBA PowerPoint
    Réponses: 20
    Dernier message: 26/04/2010, 09h16
  3. Macro pour Image
    Par malabarbe dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 10/08/2007, 14h30
  4. [VBA-E] Macro Insertion image
    Par dafalri dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/05/2006, 17h20
  5. Appliquer une macro à une image
    Par erwan99 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/04/2006, 14h50

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