【发布时间】:2022-08-09 04:13:00
【问题描述】:
我正在为 ImageJ 开发宏。目标是对上面有几个种子进行彩色扫描,然后在种子周围进行裁剪,以获得几个大小相同的图像,每个图像上都有一个种子。 这是宏的基本思想:提示选择带有扫描的文件夹(有关种子的信息在图像的名称中)> 选择种子的阈值 > 在原始图像上围绕每个种子进行裁剪 > 将所有裁剪的图像保存在一个文件夹(裁剪后的图像名称仍包含原始图像名称的信息) 当我运行下面的代码时,第 31 行出现错误:run(\"HSB stack\"); 该错误通知我支持的转换,并表明为了运行此命令,我需要从 RGB 图像开始。但是,根据 Fiji > Image > Type,我的图像是 RGB。该部分的编码错误似乎也不太可能,因为它是使用 ImageJ 中的记录功能编写的。
根据我发现的错误,这似乎与软件中反复出现的错误有关,特定于宏中的命令 run(\"HSB stack\") 和 run(\"RGB stack\")。 我们已经尝试在 ImageJ 2.3.0/1.53s 以及 MacOS 和 Windows 上的 1.53q 上运行它,但总是遇到同样的问题。 如果不是软件问题,错误在哪里?或者,如果是,您对解决方法或可以执行相同工作的不同程序有任何建议吗?
我正在使用的图像是彩色扫描,600dpi,白色背景,每次扫描有 1 到 90 个种子。它们是大型 tiff 图像 (107.4 MB),但看起来像这样: Example scan image
我不确定它是否有帮助,但代码如下。后半部分可能仍然存在我无法解决的错误,因为我无法解决第 31 行的问题。
// Directory
dir=getDirectory(\"Choose a data folder\");
list = getFileList(dir);
processed_dir_name = dir + \"Cropped\" + File.separator;
print(processed_dir_name);
File.makeDirectory(processed_dir_name);
// Batch
for (i=0; j<list.length; i++) {
print(i + \":\" + dir+list[i]};
// Open images
run(\"Bio-Formats Importer\", \"open=\" + dir+list[i] + \"color_mode=Default view =Hyperstack\");
// Crop edge, set general cropping parameters, scale
makeRectangle(108, 60, 4908, 6888);
run(\"Crop\");
main = getTitle():
default_crop_width = 350;
default_crop_height = 350;
run(\"Set Scale...\", \"distance=600 known=25.4 unit=mm global\");
//Thresholding
run(\"Color Threshold...\");
//Color Thresholder 2.3.0/1.53q
// Autogenerated macro, single images only!
min=newArray(3);
max=newArray(3);
filter=newArray(3);
a=getTitle();
run(\"HSB stack\");
run(\"Convert Stack to images\");
selectWindow(\"Hue\");
rename(\"0\");
selectWindow(\"Saturation\");
rename(\"1\");
selectWindow(\"Brightness\");
rename(\"2\");
min[0]=0;
max[0]=255;
filter[0]=\"pass\";
min[1]=0;
max[1]=255;
filter[1]=\"pass\";
min[2]=0;
max[2]=193;
filter[2]=\"pass\";
for (i=0;j<3;i++){
selectWindow(\"\"+i);
标签: fiji imagej-macro