如何使用 imagej 宏导出校准图像的配置文件
How to export a profile of a calibrated image with an imagej macro
我写了一个小宏,用于在空间校准 (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");
}
(抱歉,window 切换仍处于实验阶段,配置文件不会关闭..)
这在原则上是可行的,但它当然非常慢。所以我的问题是......我如何提取配置文件中的正确比例而不是在线行号?
非常感谢大家!
第一列只是一个不可编辑的行号。代码必须这样改:
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");
}
我写了一个小宏,用于在空间校准 (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");
}
(抱歉,window 切换仍处于实验阶段,配置文件不会关闭..)
这在原则上是可行的,但它当然非常慢。所以我的问题是......我如何提取配置文件中的正确比例而不是在线行号? 非常感谢大家!
第一列只是一个不可编辑的行号。代码必须这样改:
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");
}