我正在编写用于获取堆叠图像的直方图值的代码。当我使用“宏”>“运行”在GUI中运行代码时,它的工作原理就像一个魅力。但是我正在使用无头模式机智的斐济应用程序,但没有得到预期的结果。
我尝试将cmd提示符与--headless命令一起使用。
ImageJ-win64.exe --headless -macro“宏的路径”
如果我在上面的命令中不使用--headless,则GUI打开,并得到所需的结果。如果我使用--headless,我会得到结果,但它们是错误的。我怀疑如果使用无头模式,counts1不会被当作数组。
image_path = '20181120_133154';
run("Image Sequence...", "open=[C:/"+image_path+"_E1_N1.tif] file= {image_path} sort");
requires("1.34m");
nBins = 65536;
hMin = 0;
hMax = 65536;
row=0;
setOption("ExpandableArrays", true);
counts1 = newArray(65536);
values1 = newArray(65536);
setBatchMode(true);
stack = getImageID();
for (slice=1; slice<=nSlices; slice++)
{
selectImage(stack);
if (nSlices>1) run("Set Slice...", "slice=" + slice);
run("Duplicate...", "title=temp");
run("32-bit");
close();
for (i=0; i<nBins; i++)
{
if (nSlices==0) {
counts1[i]=counts[i];
values1[i]=values[i];
}
else
{
counts1[i] = counts[i]+counts1[i];
}
}
}
i=0;
file = File.open("C:\\"+random+".txt");
for(i=0;i<counts1.length;i++){
print(file,counts1[i]);
}
预期输出:
2364010
7276
1252
13067
0
2366
1261
27027
0
0
...
-输出已获得-
6553600
0
0
0
0
0
0
0
...