【问题标题】:Check if ImageJ has an image open检查 ImageJ 是否打开了图像
【发布时间】:2012-07-02 16:21:16
【问题描述】:

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

ImagePlus image = new ImagePlus(path);

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

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

编辑:

澄清一下,这是一个多线程应用程序,它可能会尝试同时打开和处理许多图像。 ImageJ 类 (IJ) 具有打开图像的功能,但 IJ 是一个单例类,因此当同时调用多个 IJ.openImage("string") 时会出现奇怪的行为。

【问题讨论】:

    标签: java imagej


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-05
      • 1970-01-01
      • 2013-12-23
      相关资源
      最近更新 更多