2015-04-25 25 views
1

J'essaie d'ajouter une barre d'échelle à ImagePlus mais je ne peux pas. Quand j'utilisais windows je les commandes suivantes:ImageJ, ajout d'une barre d'échelle à ImagePlus

IJ.selectWindow("window_name"); 
IJ.run("Set Scale...", "distance=1 known="+pixelSize+" pixel=1 unit=um"); 
IJ.run("Scale Bar...", "width="+barSize+" height=3 font=12 color=Black location=[Upper Right]"); 

J'espère que quelqu'un peut me aider, je laisse le code à voir:

String name = "example.jpg"; 
ImagePlus cRoiDuplicated = this.cROI.duplicate(); 
cRoiDuplicated.setTitle(name); 

if (barSize != -1){ 
    [Code] 
    /*IJ.run("Set Scale...", "distance=1 known="+pixelSize+" pixel=1 unit=um"); 
    IJ.run("Scale Bar...", "width="+barSize+" height=3 font=12 color=Black location=[Upper Right]");*/ 
} 

FileSaver fs = new FileSaver(cRoiDuplicated); 
fs.saveAsJpeg(this.directory + name); 
cRoiDuplicated.close(); 

Répondre

0

Dans un plugin Java, vous devez utiliser le IJ.run(ImagePlus imp, String command, String options) méthode qui prend un ImagePlus comme premier argument d'entrée. Utilisez le Macro recorder en mode Java pour obtenir les commandes requises. Le plug-in suivant a été créé par

  • ouvrir la fenêtre d'enregistrement (Plugins> Macros> Enregistrer ...),
  • ouverture du 'Blobs' image échantillon (Fichier> Les échantillons ouverts> Blobs (25K)),
  • réglage de l'échelle (Analyse> Définir l'échelle ...),
  • ajouter la barre d'échelle (Analyse> Outils> barre d'échelle ...), puis
  • en cliquant sur le bouton 'Create' dans la fenêtre de l'enregistreur.

Ceci est le code généré:

import ij.*; 
import ij.process.*; 
import ij.gui.*; 
import java.awt.*; 
import ij.plugin.*; 
import ij.plugin.frame.*; 

public class My_Plugin implements PlugIn { 

    public void run(String arg) { 
     ImagePlus imp = IJ.openImage("http://imagej.nih.gov/ij/images/blobs.gif"); 
     IJ.run(imp, "Set Scale...", "distance=1 known=2 pixel=1 unit=um"); 
     IJ.run(imp, "Scale Bar...", "width=50 height=3 font=12 color=Black background=None location=[Upper right]"); 
     imp.show(); 
    } 

} 
+0

Merci, vous avez été très utile. Je viens de tester et ça marche. – SolidusAbi