循环
//imageRows = 6;
print("imageRows: " + imageRows);
for (var gridY = 1 ; gridY < imageRows + 1 ; gridY++)
{
print("imageRows: " + imageRows + " gridY: " + gridY + " gridY < imageRows + 1: " + (gridY < imageRows + 1));
}
给出输出
imageRows: 6
imageRows: 6 gridY: 1 gridY < imageRows + 1: true
imageRows: 6 gridY: 2 gridY < imageRows + 1: true
imageRows: 6 gridY: 3 gridY < imageRows + 1: true
imageRows: 6 gridY: 4 gridY < imageRows + 1: true
imageRows: 6 gridY: 5 gridY < imageRows + 1: true
imageRows: 6 gridY: 6 gridY < imageRows + 1: true
imageRows: 6 gridY: 7 gridY < imageRows + 1: true
imageRows: 6 gridY: 8 gridY < imageRows + 1: true
imageRows: 6 gridY: 9 gridY < imageRows + 1: true
.....
imageRows: 6 gridY: 59 gridY < imageRows + 1: true
imageRows: 6 gridY: 60 gridY < imageRows + 1: true
但是,取消注释imageRows = 6;
imageRows = 6;
print("imageRows: " + imageRows);
for (var gridY = 1 ; gridY < imageRows + 1 ; gridY++)
{
print("imageRows: " + imageRows + " gridY: " + gridY + " gridY < imageRows + 1: " + (gridY < imageRows + 1));
}
给出了预期的结果:
imageRows: 6
imageRows: 6 gridY: 1 gridY < imageRows + 1: true
imageRows: 6 gridY: 2 gridY < imageRows + 1: true
imageRows: 6 gridY: 3 gridY < imageRows + 1: true
imageRows: 6 gridY: 4 gridY < imageRows + 1: true
imageRows: 6 gridY: 5 gridY < imageRows + 1: true
imageRows: 6 gridY: 6 gridY < imageRows + 1: true
ImageJ使用Rhino引擎运行Javascript宏。
注意:上面的循环嵌套在另一个循环中。但出于调试目的,我在外循环中注释掉了所有其他行。
编辑:为了它的价值,我将外部循环的其余部分x出来:
numImages = 1;
for (var imageNumber = 1 ; imageNumber < numImages + 1 ; imageNumber++)
{
imageRows = 6;
print("imageRows: " + imageRows);
for (var gridY = 1 ; gridY < imageRows + 1 ; gridY++)
{
print("imageRows: " + imageRows + " gridY: " + gridY + " gridY < imageRows + 1: " + (gridY < imageRows + 1));
}
}
和完全相同的行为。
答案 0 :(得分:0)
imageRows
确实不是有效数字。我正在从一个文件中读到它:
importClass(Packages.ij.IJ);
....
var gridConfigurationRawData = IJ.openAsString(folder + IMAGE_GRID_CONFIGURATION_FILENAME);
var arrayOfData = gridConfigurationRawData.split("\n");
....
var imageRows = dataLine[1];
当我检查类型时:
print("typeof imageRows: " + (typeof imageRows));
我得到object
。
当我改为:
var imageRows = parseInt(dataLine[1]);
它有效。
在ImageJ中编写Javascript宏非常棘手。