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 :

Problème d'intégration de variable dans la fonction "Label"


Sujet :

ImageJ Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Problème d'intégration de variable dans la fonction "Label"
    Bonjour.

    J'essaye d'utiliser la fonction Label... sur un stack avant de le convertir en video.

    J'ai créée des boîtes de dialogues permettant de faire varier les paramètres, puis j'ai placé les variables dans la fonction afin d'en retourner leur valeur.

    J'ai vérifié la valeur des mes variables par un print("variable", variable); et tout est en ordre.
    Cependant une fois dans la fonction Label, impossible de retourner leur valeur. Si je rentre les paramètres à la place des variables dans la fonction, tout marche nickel.

    Ci-joint ma macro, ainsi qu'une image exemple du résultat obtenu.

    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    run("Close All");
    dir1 = getDirectory("Choose Root Image Folder");
     
    dirSaveMovies = dir1 + "Movies" + File.separator;
    if (File.exists(dirSaveMovies)){} else {File.makeDirectory(dirSaveMovies);}
     
    dir2 = dir1 + "RawData" + File.separator;
    list2 = getFileList(dir2);
     
    for (i=0; i<(list2.length); i++) {
     
    	dir3 = dir2 + list2[i];
    	list3 = getFileList(dir3);
    	file = dir3 + list3[i];
     
    	if (endsWith(file, ".tif")) {
    			run("Image Sequence...", "open=file convert");
    			run("Set Scale...", "distance=0 known=0 pixel=1 unit=pixel");
    			id1=getImageID();
     
    			Dialog.create("Need to rotate?");
    			s0="Do you want to do a rotation?";
    			Dialog.addMessage(s0);
    			Dialog.addCheckbox("Rotation", 1);
    			Dialog.show();
    			rotate = Dialog.getCheckbox();
     
    			if (rotate == 1) {
    				setTool("angle");
    				waitForUser("Measure the rotation angle");
    				Dialog.create("Measure the rotation angle");
    				Dialog.addNumber("Angle value", 15);
    				Dialog.show();
    				angle = Dialog.getNumber();
    				run("Rotate... ", "angle=&angle grid=1 interpolation=Bilinear stack");
    			} 
     
    			Dialog.create("Parameters");
    			s2="Fill in the fields";
    			Dialog.addMessage(s2);
    			Dialog.addString("Acquisition date (without space)", "");
    			Dialog.addString("Strain name", "");
    			Dialog.addString("Microscopy", "");
    			Dialog.addString("Complementary data (without space)", "");
    			Dialog.addChoice("Bin value", newArray("1", "2"));
    			Dialog.addNumber("Acquisition Step in seconds", 0.5);
    			Dialog.addString("Time unity", "sec");
    			Dialog.addChoice("Movie's format (Warning: Quicktime format is not supported by Fiji)", newArray("Avi", "Quicktime"));
    			Dialog.show();
    			bin = Dialog.getChoice();
    			date = Dialog.getString();
    			souche = Dialog.getString();
    			micro = Dialog.getString();
    			info = Dialog.getString();
    			time = Dialog.getNumber();
    			unity = Dialog.getString();
    			format = Dialog.getChoice();
    			if (bin == 1) { makeRectangle(188, 114, 1050, 700);
    			} else { makeRectangle(188, 114, 525, 350); }
     
    			waitForUser("Place properly the rectangle around the embryo");
    			run("Crop");
     
    			slice=nSlices;
     
     
     
    			//run("Time Stamper", "starting=0 interval=" + time + "x=20 y=20 font=20 '00 decimal=2 anti-aliased or=sec");
    			run("Label...", "format=00:00 starting=0 interval=" + time + "x=20 y=20 font=20 text=" + unity + "range="+ slice);
     
    			if (format == "Avi") {
    			saveAs("Avi", dirSaveMovies + date + "_" + souche + "_" + micro + "_" + info + "_" + i + 1 + ".avi");
    			} else {
    			saveAs("QuickTime Movie...", "compression=MPEG-4 quality=High frame=10 save=" + dirSaveMovies + date + "_" + souche + "_" + micro + "_" + info + "_" + i + 1 + ".mov");	
    			}
     
    			run("Close All");
     
    	}	
    }
    Nom : Test_forum.jpg
Affichages : 126
Taille : 49,3 Ko

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Je poste la solution, si jamais quelqu'un avait le même souci, j'espère que ça pourra l'aider:

    dans cette petite ligne de code :

    run("Label...", "format=00:00 starting=0 interval=" + time + "x=20 y=20 font=20 text=" + unity + "range="+ slice);

    Si on fait un :

    print(format=00:00 starting=0 interval=" + time + "x=20 y=20 font=20 text=" + unity + "range="+ slice)

    on se rend compte qu'il y a 3 erreurs :

    - il manque un espace entre interval et x
    - il manque un espace entre text et range
    - il manque 1- avant le +slice

    la bonne commande est donc :

    run("Label...", "format=00:00 starting=0 interval=" + time + " x=20 y=20 font=20 text=" + unity + " range=1-"+ slice);

    Voila voila.

    N'hésitez pas à me contacter si des questions vous avez !

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

Discussions similaires

  1. [PowerShell] Problème de variable dans les fonctions. (windows forms)
    Par gretch dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 20/08/2014, 15h02
  2. [NASM] Problème de variable dans la fonction appelante
    Par Joccd dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 01/04/2009, 14h45
  3. problème de variable dans une fonction
    Par K4trix dans le forum C
    Réponses: 9
    Dernier message: 06/07/2006, 09h38
  4. [XSL/JavaScript]problème d'intégration code JS dans le XSL
    Par Devil666 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/04/2005, 16h36

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