ImageJ批量操作时常见报错及其原因

ImageJ中,Process->Batch->Macro 的功能十分强大,通过使用代码可以批量地去处理大量的荧光图片。但是对于运行过程中的报错,却很难在网上找到解决方案。下面我汇总了一些常见的报错,并且将原因写在下面方便debug。

首先,请确保你的imagej是最新版本,最新版本下载地址

其次,重启你的imagej,如有必要重启电脑。

there are no images open

 该报错通常是因为代码里面有多余的"close",如 close() 或 run("close") ,需要手动删除。之所以多出"close",往往是因为在使用Plugin->Macro->Record录制操作代码过程中关闭了不相干的窗口(如Threshold窗口),这个关闭操作被当做一般的关闭操作记录成了关闭指令,于是在批处理时会把活动的图片关闭掉。如果我们确实需要在批处理过程中删除某个图片,记得在close指令前加上一行selectWindow("figureName")先选中需要关闭的图片。selectWindow函数具体用法请参考ImageJ的Macro语言实例教程

Noparticles were detected. The threshold (255-255)may not be correct.
一般在analyze particle之后出现。说明当前测量的图片中的某个细胞被select了。单击需要测量的图片,ctrl+shift+A取消选中,然后再analyze particle。另一种可能是因为在analyze particle中设置的size或Circularity在细胞范围之外,size的范围设置请参考这篇文件这篇博文,其中的步骤1-6。

No window with the title "xxx" found.
代码中出现了某一张特定的图片名称(即xxx),而在批量处理时,我们处理其他图片(如yyy或zzz)时,则找不到xxx。需要将xxx改为一个变量。具体方法可以参考我的另一篇博文。

')'expected in line x
如果第x行没有缺少反括号')',那么前面某一行肯定缺了。或者x行有语法错误,比如使用了中文标点符号(重点检查逗号和引号)。另外一个debug依据是run函数的括号中间最多只有两对引号,一般形式是run("command","option1 option2 option3...")。

Undefined variable in line n
这个故障其实很容易排除,因为在报错的第一行说明了故障出现在代码的第n行,第二行它会用"<>"标记出没有定义的变量名。P.S.如果你是使用插件时报出这个错误,尤其是使用DiameterJ插件中的Diameter_Segment命令时报出了Undefined variable in line 156错误,那么非常恭喜你,你可以通过点击help-Update ImageJ,然后安装一个更低版本的imagej(如果你是选择困难症,我建议你选1.51)你的问题会立马解决掉。根据插件作者在这个论坛中的解释,出现这个报错是因为新版本的imagej对插件代码中的变量存储方式变了。

Unrecognized command:"Morphological Reconstruction"in line 33
run ("Morphological Reconstruction" ,"marke=VesselSeeds,png mask=flat+RB5_preesselDel.png type=[By Dilation) conn..
这是因为缺少一个叫做“MorphoLibJ”的imagej插件,直接在这里下载。

Invalid key in line 7.
如果没有语法错误,那么就是你的imagej版本过低。

细胞计数,在analyze particle时能在图片中显示被计数的每个细胞的序号,但在Process->Batch->Macro运行后,output文件夹中导出的图片没有细胞的序号
将存储格式设为JPG或者PNG。如果不行,把ImageJ升级到最新版本。

threshold之后存的照片不是0和255二值的
存成了JPEG或者PNG格式,应该存为TIF格式才会二值的

java.lang.llegalArgumentException: Array size too large: 108538 x 106430 x 1 X1
图片尺寸过大,超出了ImageJ所能读取的最大尺寸(大约46340 x 46340) 。你可能需要进行“按需读取”,请参考这篇

正文已结束!如有疑问欢迎加博主微信w2689115745交流

致管理员:这是我本人微信,不是广告!!!不要再卡我审核了!有病吧!

你可能感兴趣的:(imagej)