首页 > 解决方案 > 如何使用 imagej 宏导出校准图像的配置文件

问题描述

我写了一个小宏,它在空间校准(Dicom-)图像上定位球体。一经发现,就抽签!的线条并将这些线条的亮度配置文件保存到 csv 文件中。到目前为止,这工作得很好而且很快。这是一段代码,用于提取配置文件并保存它们:

for (i=0; i < 360; i++){
    run("Clear Results"); 
    angle = i*2*PI/360;
    makeLine(xm,ym,(xm+(length*sin(angle))), (ym-(length*cos(angle))));
    profile = getProfile();
    for (j=0; j<profile.length; j++) {
        setResult("Value", j, profile[j]);
    }
    updateResults;
    saveAs("Results",path + "\\angle_"+i+".csv");
}

我的问题是,实际比例没有导出。我得到这样的东西:

1,3070.070
2,3069.000
3,3069.986
4,3053.646

但我想要

0.4395 3070
0.8789 3070
1.3184 3070
1.7578 069.8994

等等。我试图稍微修改这一行:

setResult("Value", j*xscale, profile[j]);

但这不起作用。我还尝试绘制配置文件,然后阅读并保存它们。

for (i=0; i < 360; i++){
        run("Clear Results"); 
        angle = i*2*PI/360;
        makeLine(xm,ym,(xm+(length*sin(angle))), (ym-(length*cos(angle))));
        run ("Plot Profile");
        Plot.getValues(xplot,yplot);
        for (j=0; j< xplot.length; j++){
            print (xplot[j],yplot [j]);         
        }

        selectWindow("Log");
        saveAs("Text",path + "\\angle_"+i+".csv");
        print("\\Clear");
        selectWindow("04");
    }

(抱歉,窗口切换仍处于试验阶段,配置文件未关闭..)

这在原则上是有效的,但它当然很慢。所以我的问题是....我如何不提取在线行号而是提取配置文件中的正确比例?非常感谢大家!

标签: imagej

解决方案


第一列只是一个不可编辑的行号。必须像这样更改代码:

for (i=0; i < 360; i++){
    run("Clear Results"); 
    angle = i*2*PI/360;
    makeLine(xm,ym,(xm+(length*sin(angle))), (ym-(length*cos(angle))));
    profile = getProfile();
    for (j=0; j<profile.length; j++) {
        setResult("xvalues", j, j*dx);
        setResult("yvalues", j, profile[j]);
    }
    updateResults;
    saveAs("Results",path + "\\angle_"+i+".csv");
}

推荐阅读