imagej - 如何使用 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");
}
(抱歉,窗口切换仍处于试验阶段,配置文件未关闭..)
这在原则上是有效的,但它当然很慢。所以我的问题是....我如何不提取在线行号而是提取配置文件中的正确比例?非常感谢大家!
解决方案
第一列只是一个不可编辑的行号。必须像这样更改代码:
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");
}
推荐阅读
- postgresql - 如何在 docker 安装中将 openproject 数据库从 Postgresql v9.4 迁移到 v9.6?
- r - 在文本中查找无意义的单词
- c# - 使用 React 和 ASP.NET 将图片 URL 转换为位图
- eclipse - Eclipse Egit - 是否可以比较不同项目的提交?
- excel - 为什么我的数组不包括预先存在的下拉值?
- android - 在 onStart() 上的方法上调用方法 finish() 时,方法 onRestart() 不执行代码
- sql - 如何消除多列查询中的重复数据
- dart - Flutter:_InternalLinkedHashMap 没有实例> 方法“cast”
- mysql - MySQL - 具有重复唯一字段的条目
- android - RecyclerView + GridView + Single ImageView = 对齐到屏幕中心