批量处理图像J中的图像.正在尝试添加一系列图像



我正试图将多个DICOM图像一起添加到一个求和图像中。这是我迄今为止想出的代码。它添加前两个图像,并保存新的"总和"图像。然后,它将再添加一个图像,但for循环似乎不起作用,目录中的其他17个图像都不会被添加。没有显示任何错误消息。

dir = getDirectory("Choose a Directory "); 
list = getFileList(dir);
open(dir+list[0])
open(dir+list[1])
imageCalculator("Add create", list[0], list[1]);
saveAs("Tiff", dir+"Sum.tif");
close();
selectWindow(list[0]);
close();
selectWindow(list[1]);
close();
if (getVersion>="1.40e")
setOption("display labels", true);
setBatchMode(true);
open(dir+"Sum.tif");
for (i=3; i<list.length; i++) {
if (nImages>=1) {
path = dir+list[i];
open(path);
imageCalculator("Add", "Sum.tif", list[i]);
selectWindow(list[i]);
close();
saveAs("Tiff", dir+"Sum1.tif");
}

Script对我来说就像ImageJ宏。如果我是你,我会通过将所有图像堆叠在一起并Z投影它们的总和来简化任务,这就得到了一些简单的东西:

dir = getDirectory("Choose a Directory "); 
list = getFileList(dir);
for (i=0; i<list.length; i++) {
open(dir+list[i]);
}
run("Images to Stack", "name=[Stack of DICOMs] title=[]");
run("Z Project...", "projection=[Sum Slices]");

上述代码的乘积应在默认情况下将图像类型更改为32位,以便在必要时保持更大的值。顺便说一下,打开文件时,脚本中缺少分号。您可能没有包含所有代码,因为缺少了一些用于结束循环的关键括号。

最新更新