我的Jython-Fiji插件有问题:
IJ.run("Set Measurements...", "area centroid perimeter shape feret's area_fraction redirect=None decimal=6")
IJ.run("Analyze Particles...")
rt = ResultsTable.getResultsTable()
for roi in RoiManager.getInstance().getRoisAsArray():
a = rt.getValue("Feret", row)
b = rt.getValue("MinFeret", row)
nu= 1
L = 1
p = 1
row = row + 1
s = (math.pi/4) * (1/(nu*L)) * math.pow(a, 3) * math.pow(b, 3) / (math.pow(a, 2) + math.pow(a, 2))*p
rt.addValue("S", s)
rt.show("Results")
Normaly这应该在我的意见中添加一个新的列(名为S),其值为s。不幸的是,只有最后一个s值显示在列中,而此列的所有其他行都填充0.我绝对错过了一些东西,但此刻我不知道是什么。提前感谢你!
答案 0 :(得分:1)
要使代码运行,我必须在开头添加import math
和row=0
。
然后,我添加了当前行参数,将ResultsTable.addValue()
函数调用替换为ResultsTable.setValue()
。有关详细信息,请参阅API documentation。
import math
IJ.run("Set Measurements...", "area centroid perimeter shape feret's area_fraction redirect=None decimal=6")
IJ.run("Analyze Particles...")
rt = ResultsTable.getResultsTable()
row=0
for roi in RoiManager.getInstance().getRoisAsArray():
a = rt.getValue("Feret", row)
b = rt.getValue("MinFeret", row)
nu= 1
L = 1
p = 1
s = (math.pi/4) * (1/(nu*L)) * math.pow(a, 3) * math.pow(b, 3) / (math.pow(a, 2) + math.pow(a, 2))*p
rt.setValue("S", row, s)
row = row + 1
rt.show("Results")
希望有所帮助。