ImageJ 继续运行/某些线程未停止

问题描述

我尝试使用 ImageJ 库来处理图像。我的问题是,某些线程永远不会停止。 Eclipse 总是向我显示一个正在运行的活动线程。如果我将一个 > 0 的值传递给下面的函数,就会发生这种情况。似乎 ImageJ 在需要处理某些内容时会在内部打开一个线程(例如 blurGaussian(0.1))。

如何停止此线程?

我的代码

public static BufferedImage preProcessBufferedImage(BufferedImage bufferedImage,double sigma) throws IOException {
    ImagePlus imagePlus = new ImagePlus("",bufferedImage);
    imagePlus.getProcessor().blurGaussian(sigma);
    return imagePlus.getBufferedImage();
}

使用的库: https://mvnrepository.com/artifact/net.imagej/ij/1.53h

解决方法

ImagePlus.close() 怎么样?似乎这个类有一个关闭方法。使用它。

public static BufferedImage preProcessBufferedImage(BufferedImage bufferedImage,double sigma) throws IOException {
    ImagePlus imagePlus = new ImagePlus("",bufferedImage);
    BufferedImage blurredImage = imagePlus.getProcessor().blurGaussian(sigma).getBufferedImage();
    imagePLus.close();
    return blurredImage;
}
,

我遇到了同样的问题,我找到的唯一解决方案是在调用 blurGaussian 方法之前使用 ij.Prefs.setThreads(1);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...