MIJI と TrackMate という Java プラグインを利用する MATLAB の分析スクリプトがあります。次のスクリプトで初期化され、分析する画像ファイルが開かれます。
% add java paths and script folder
javaaddpath '\mij.jar';
javaaddpath '\ij-1.51n.jar';
addpath '\Fiji.app\scripts';
Miji(false);
% Get currently selected image
% imp = ij.IJ.openImage('http://fiji.sc/samples/FakeTracks.tif')
imp = ij.ImagePlus('\B1R1 16000 Frames 405 561nm HILO.tif');
imp.show()
TrackMate に画像の分析方法を指示するモデルと設定オブジェクトが生成されます。
%----------------------------
% Create the model object now
%----------------------------
% Some of the parameters we configure below need to have
% a reference to the model at creation. So we create an
% empty model now.
model = fiji.plugin.trackmate.Model();
% Send all messages to ImageJ log window.
model.setLogger(fiji.plugin.trackmate.Logger.IJ_LOGGER)
%------------------------
% Prepare settings object
%------------------------
settings = fiji.plugin.trackmate.Settings();
settings.setFrom(imp)
get(model)
が呼び出されると、モデルは次のコンポーネントを返します。
Class: [1×1 java.lang.Class]
FeatureModel: [1×1 fiji.plugin.trackmate.FeatureModel]
Logger: [1×1 fiji.plugin.trackmate.Logger$5]
ModelChangeListener: [1 java.util.LinkedHashSet]
SpaceUnits: 'pixels'
Spots: [1×1 fiji.plugin.trackmate.SpotCollection]
TimeUnits: 'frames'
TrackModel: [1×1 fiji.plugin.trackmate.TrackModel]
興味深いのは、TrackMate からの分析出力を含むFeatureModelコンポーネントです。実行featMod = get(model,'FeatureModel')
すると、以下が 1x1 FeatureModel として返されます。
Spot features declared:
- QUALITY: Quality, 'Quality' (QUALITY) - double valued.
- POSITION_X: X, 'X' (POSITION) - double valued.
- POSITION_Y: Y, 'Y' (POSITION) - double valued.
- POSITION_Z: Z, 'Z' (POSITION) - double valued.
- POSITION_T: T, 'T' (TIME) - double valued.
- FRAME: Frame, 'Frame' (NONE) - integer valued.
- RADIUS: Radius, 'R' (LENGTH) - double valued.
- VISIBILITY: Visibility, 'Visibility' (NONE) - integer valued.
Edge features declared:
Track features declared:
- TRACK_DURATION: Duration of track, 'Duration' (TIME) - double valued.
- TRACK_START: Track start, 'T start' (TIME) - double valued.
- TRACK_STOP: Track stop, 'T stop' (TIME) - double valued.
- TRACK_DISPLACEMENT: Track displacement, 'Displacement' (LENGTH) - double valued.
を指定することで、個々の値を Java 文字列として出力できますが、これは のコンポーネントとして宣言されたトラック フィーチャfeatMod.echo()
の値のみを示しており、分析を完了するために必要な出力である宣言されたスポット フィーチャの値は示していません。featMod
スポット フィーチャ宣言コンポーネントから値を取得するにはどうすればよいですか? 目的の出力が得られない理由がわかりませんが、他のコンポーネントが得られます。
具体的に呼び出そうとするとfeatMod.echo('SpotFeatures')
、エラーメッセージが表示されます。
クラス 'fiji.plugin.trackmate.FeatureModel' に一致するシグネチャを持つメソッド 'echo' が見つかりません。