我有一个我创建的宏的轮廓,但是它希望它能做一些我无法弄清楚如何编程的简单函数。我有一系列图像,我将作为堆栈导入。对于每个图像,我将使用多点工具在每个图像中手动对不同对象进行一系列点击。宏打印结果表中点的坐标。然而,每个图像中的每个“组/系列”点(将有4-5个10+点的簇)将需要在结果表中进行不同的标记(可能通过切片??)。例如,对于每个图像,我想标记第一个点集群“1”,第二个点集群“2”等。有没有办法在结果窗口中手动标记它?在标签列中,我想保留或添加图像名称,而不是替换,但在切片列中添加此标签将是理想的。
这是我到目前为止创建的宏......
macro "Macro 2" {
getSelectionCoordinates(xCoordinates, yCoordinates);
for(i=0; i<lengthOf(xCoordinates); i++) {
setResult("X", i, xCoordinates[i]);
setResult("Y", i, yCoordinates[i]);
}
updateResults();
它有效,除了我无法弄清楚如何为每个图像和图像之间不同地标记点的不同“组/簇”。
答案 0 :(得分:1)
试试这个:
var label = 1;
macro "Save to Results" {
row = nResults;
getSelectionCoordinates(xCoordinates, yCoordinates);
for(i=0; i<lengthOf(xCoordinates); i++) {
setResult("X", i+row, xCoordinates[i]);
setResult("Y", i+row, yCoordinates[i]);
setResult("Label", i+row, label);
setResult("Slice", i+row, getSliceNumber());
}
updateResults();
}
macro "Increment label" {
label++;
showStatus("label = "+label);
}
macro "Reset Label" {
label = 1;
showStatus("label = "+label);
}
它使用标签的全局变量和其他宏来操作它。