Public static void main
Eclipseでmavenを使ってjarファイルのpluginを作る場合、動作確認はjarファイルをImageJのpluginsフォルダに移して実行、ということが多い。作ってはImageJを立ち上げなおして、というのは結構面倒臭い。そこで、public static void main(String args[])を作っておけば、EclipseのRunからJava applicationとして簡単にテストすることができる。
ijをインスタンスしなくても、ImageJのクラスは普通に使えるので、特にplugin filterを作る場合などに便利。
import java.net.URI;
import java.net.URISyntaxException;
import ij.IJ;
import ij.ImagePlus;
import ij.plugin.filter.PlugInFilter;
import ij.process.ImageProcessor;
public class Hoge implements PlugInFilter {
 @Override
 public int setup(String arg, ImagePlus imp) {
  // TODO Auto-generated method stub
  return DOES_ALL;
 }
 @Override
 public void run(ImageProcessor ip) {
  // TODO Auto-generated method stub
 }
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  URI img;
  try {
   img = ClassLoader.getSystemResource("test.tif").toURI();
   ImagePlus imp = IJ.openImage(img.getPath());
   Hoge hogehoge = new Hoge();
   hogehoge.setup("", imp);
   hogehoge.run(imp.getProcessor());
  } catch (URISyntaxException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
}
Hogeのオブジェクトを作り、setupでImagePlusを、runでImageProcessorを送ることができる。
Resourceフォルダへのアクセス
テスト用の画像データは、resourceフォルダに入れておく。resourceフォルダに入れたファイルは、以下のようにしてアドレスを取り出す。URI img = ClassLoader.getSystemResource("test.tif").toURI();
ImagePlus imp = IJ.openImage(img.getPath());
これで開発はかなり楽になる。
 
0 件のコメント:
コメントを投稿