金魚亭日常

読書,ガジェット,競技プログラミング

`LeafArea` を `Fiji` で動かす (Windows編)

LeafAreaという R から ImageJ を動かして葉面積を測定できるべんりパッケージがあるんですが,Fiji だとうまく動きません. というのは,ImageJ と Fiji ではフォルダ構造とかファイル名とかが異なるからです.

LeafArea package が想定しているフォルダ構造は

ImageJ\
ImageJ\ij.jar
ImageJ\jre\bin\java.exe

となっており,これが Fiji.app(no JRE) の場合だと

Fiji.app\
Fiji.app\jars\ij-1.51g.jar

という感じになっています. java.exeの場所は,JRE 付きのものをインストールした場合は

Fiji.app\java\win64\jdk1.8.0_66\jre\bin\java.exe

という感じになっており,JREなしをインストールした場合は システムのjavaを使うので,

"C:\Program Files\Java\jre1.8.0_112\bin\java.exe"

という感じになります(バージョンとかによって違う).

なので,これを合わせてあげればよいので,シンボリックリンクを張ります.

管理者コマンドプロンプトを立ち上げて,Fiji.app まで移動

cd path\to\Fiji.app

そして, no JRE の人は,

mklink /D jre "C:\Program Files\Java\jre1.8.0_112"
mklink ij.jar .\jars\ij-1.51g.jar

JRE 付きの人は,

mklink /D jre .\java\win64\jdk1.8.0_66\jre
mklink ij.jar .\jars\ij-1.51g.jar

とやってシンボリックリンクを張ります. 動かすときは,

library(LeafArea)
ex.dir <- eximg()
list.files(ex.dir)
run.ij(path.imagej = "path/to/Fiji.app", set.directory = ex.dir)

path.imagej でFiji.app のあるとこを指定すれば動きます.

実は昔一度fork して動かしたんですが,こっちの方が楽ですね.