首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MATLAB中,echo()不会从java类输出所需的信息。

在MATLAB中,echo()不会从java类输出所需的信息。
EN

Stack Overflow用户
提问于 2018-11-02 00:44:06
回答 1查看 46关注 0票数 0

我在MATLAB中有一个分析脚本,它使用MIJI和一个名为TrackMate的java插件。它用下面的脚本初始化,并打开一个图像文件进行分析。

代码语言:javascript
复制
% 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如何对图像进行分析。

代码语言:javascript
复制
%----------------------------
% 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)时,该模型返回以下组件;

代码语言:javascript
复制
  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]

令人感兴趣的是FeatureModel组件,它包含来自TrackMate的分析输出。运行featMod = get(model,'FeatureModel')时,以下内容作为1x1 FeatureModel返回;

代码语言:javascript
复制
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.

我可以通过声明featMod.echo()将单个值作为java字符串输出,但是这只告诉我来自featMod的Track特性声明组件的值,而不是声明的Spot特性的值,这是我完成分析所需的输出。

如何从spot特性声明的组件中获取值?--我不知道为什么它没有给我想要的输出,而是给了我其他组件。

当我尝试用featMod.echo('SpotFeatures')专门调用它时,我会得到错误消息;

没有为类fiji.plugin.trackmate.FeatureModel找到匹配签名的方法“echo”。

EN

回答 1

Stack Overflow用户

发布于 2019-07-25 10:33:59

我也有同样的问题,通过用户emartini https://forum.image.sc/t/problem-exporting-xml-from-trackmate-in-matlab/27242/3在图像论坛上得到了解决。

您需要添加的代码

代码语言:javascript
复制
import fiji.plugin.trackmate.io.TmXmlWriter %add this import

outfile=java.io.File('F:\Projects\Matlab\Test_track_july25.xml'); %%or your file name 
writer = fiji.plugin.trackmate.io.TmXmlWriter(outfile); 
writer.appendModel( trackmate.getModel() ) %trackmate instantiate like this before 
trackmate = TrackMate(model, settings) writer.appendSettings( trackmate.getSettings() ) writer.writeToFile()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53111280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档