java - 检查 ImageJ 是否打开了图像

标签 java imagej

我目前正在我正在构建的 Java 应用程序中使用 ImageJ jar (ij.jar),并已设法使一切正常工作。但是,当我执行该行时有可能:

ImagePlus image = new ImagePlus(path);

(其中路径是用户指定的图像路径),该图像可能不存在。在访问image的方法之前,ImageJ库不会抛出错误,此时,ImageJ将打印到控制台There are no images open.并终止程序。我相信 ImageJ 在打印该行时实际上正在调用 System.exit() ,因为我的整个应用程序终止了——包括 Deamon 线程。

有没有办法使用 ImageJ 检查图像是否成功打开?或者我应该使用 Java 的 File 类检查文件是否存在?

编辑:

澄清一下,这是一个多线程应用程序,可能会尝试同时打开和处理许多图像。 ImageJ 类 (IJ) 具有打开图像的函数,但 IJ 是一个单例类,因此在多次调用 IJ.openImage("string") 同时发生。

最佳答案

测试图像是否加载成功的一种方法是检查图像的宽度和高度是否都为零:

ImagePlus image = new ImagePlus("/non/existent");
if (image.getWidth() == 0 && image.getHeight() == 0) {
    // Then the image wasn't loaded...
}

不过,恐怕我无法重现您所描述的应用程序退出位置的行为,所以也许这对您不起作用......

关于java - 检查 ImageJ 是否打开了图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11249347/

相关文章:

java.sql.SQLException : The server time zone value 'Hora de verano GMT' is unrecognized 异常

python - 在 python 中运行 Fiji 脚本

java - ImageJ - 即使遇到错误如何继续批处理

java - java 如何允许添加 Integer 和 Double 实例?

java - 在 Java 中运行工作 CUDA 代码的最简单方法是什么?

java - Spring 模拟 junit 测试使用 spring-security 3.2.0.RC1 版本抛出 NullPointerException

java - 为什么 Java EE 版本与 Java SE 版本不匹配?

java - getImage 是否总是返回 imageJ 中的 Image 对象

macros - 没有打开的图像 - Fiji/ImageJ 宏语言