在ImageJ中,我可以使用文件>>导入>>图像序列...打开一系列图像(tif,png,jpg等)作为堆栈。
我可以使用文件>>导入>>文字图片...
打开文字图片(包含像素矩阵的.txt文件)但是如何将一系列文本图像作为堆栈打开?
有些人提供了Macro这样做,但它不能很好地工作,因为它也会单独打开所有图像,如果你打开其他图像,那么这些图像被合并到堆栈中同样(尝试连续两次运行宏)。
如果有一个宏或插件将文本图像导入单个堆栈(忽略其他打开的图像)而不是调出单个图像,那将是很好的。基本上,它应该像Import>> Image Sequence一样运行。
这是当前的宏作为起点,但我不确定这是最好的起点。谢谢!
dir = getDirectory("Choose directory");
list = getFileList(dir);
run("Close All");
setBatchMode(true);
for (i=0; i<list.length; i++) {
file = dir + list[i];
run("Text Image... ", "open=&file");
}
run("Images to Stack", "use");
setBatchMode(false);
答案 0 :(得分:2)
在最新的斐济运行时,您个人粘贴的宏个人工作 - run("Close All");
行旨在防止意外图像被包含在您的堆栈中,而批处理模式可防止间歇性图像弹出。
事实上,如果您尝试使用非2D图像(即上一次运行的输出)运行它,则应该抱怨Images to Stack
。因此,如果您在运行宏时看到此行为,则可能是一个错误 - 您是否可以提供有关您正在使用的ImageJ / OS / Java版本的更多信息?
此外,更通用的解决方案可能是Bio-Formats importer - 它有一个标志,允许您将多个文件分组到一个堆栈中。如果您不想manually install它,默认情况下会包含生物格式Fiji distribution of ImageJ
您可能还有兴趣测试ImageJ2功能,该功能旨在将全格式支持插入到现有功能中 - 例如所以这样的宏不需要根据个别格式进行定制。从理论上讲,如果你下载斐济并打开Edit>Options>ImageJ2
,那么File>>Import>>Image Sequence...
应该按照你想要的方式工作......但它目前还没有经过充分测试。
答案 1 :(得分:0)
如果您想避免关闭其他打开的图像,可以使用图像到堆栈的标题包含参数:
只需重命名打开的文本图像,使其标题包含唯一的字符串。 使用Macro recorder获取相应的宏代码:
dir = getDirectory("Choose directory");
list = getFileList(dir);
setBatchMode(true);
for (i=0; i<list.length; i++) {
file = dir + list[i];
run("Text Image... ", "open=[" + file + "]");
rename("myUniqueIdentifier" + file);
}
run("Images to Stack", "title=myUniqueIdentifier");
setBatchMode(false);