线程 "main" java.lang.ClassCastException 中的异常:[Ljava.lang.Object;不能投射到 [B
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [B
我尝试从 loci 工具读取图像并将其从 imagej 保存到 FileSaver
但是,我在 运行 设置
时遇到了这个错误
ImagePlus[] imps = BF.openImagePlus("path/to/my/file");
for (ImagePlus imp : imps)new FileSaver(imp).saveAsRaw("E:/test.raw");
当我 运行 代码时,它显示
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [B
at ij.io.ImageWriter.write(ImageWriter.java:272)
at ij.io.FileSaver.saveAsRaw(FileSaver.java:494)
at Skripsi.dcmtoraw.main(dcmtoraw.java:16)
这是一个错误,虽然很难说这个错误是在 ImageJ 1.x 中,还是在 Bio-Formats 插件中。
In the ImageJ 1.x code,ImageWriter
假定(未选中)当图像是堆栈时像素数组是 Object[]
,当图像是单个时像素数组是 byte[]
图像平面。然而,似乎 Bio-Formats 产生 ImagePlus
个像素为 Object[]
的对象,即使对于单个平面也是如此。 (你的图片是单平面的吗?)
您或许可以通过使用 Bio-Formats Exporter 插件来保存您的数据来解决这个问题。
或者您可以在后台使用 ImageJ2 API, which will use SCIFIO:
/**
* Adapted from the
* <a href="https://github.com/imagej/imagej-tutorials">ImageJ Tutorials</a>
* {@code LoadAndDisplayDataset} tutorial.
*/
@Plugin(type = Command.class, menuPath = "Plugins>My Useful Command")
public class UsefulCommand implements Command {
@Parameter
private DatasetIOService datasetIOService;
@Parameter
private LogService log;
@Parameter
private File destination;
@Parameter
private Dataset image;
@Override
public void run() {
try {
image = datasetIOService.save(image, destination.getAbsolutePath());
}
catch (final IOException exc) {
log.error(exc);
}
}
}
我尝试从 loci 工具读取图像并将其从 imagej 保存到 FileSaver 但是,我在 运行 设置
时遇到了这个错误ImagePlus[] imps = BF.openImagePlus("path/to/my/file");
for (ImagePlus imp : imps)new FileSaver(imp).saveAsRaw("E:/test.raw");
当我 运行 代码时,它显示
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [B
at ij.io.ImageWriter.write(ImageWriter.java:272)
at ij.io.FileSaver.saveAsRaw(FileSaver.java:494)
at Skripsi.dcmtoraw.main(dcmtoraw.java:16)
这是一个错误,虽然很难说这个错误是在 ImageJ 1.x 中,还是在 Bio-Formats 插件中。
In the ImageJ 1.x code,ImageWriter
假定(未选中)当图像是堆栈时像素数组是 Object[]
,当图像是单个时像素数组是 byte[]
图像平面。然而,似乎 Bio-Formats 产生 ImagePlus
个像素为 Object[]
的对象,即使对于单个平面也是如此。 (你的图片是单平面的吗?)
您或许可以通过使用 Bio-Formats Exporter 插件来保存您的数据来解决这个问题。
或者您可以在后台使用 ImageJ2 API, which will use SCIFIO:
/**
* Adapted from the
* <a href="https://github.com/imagej/imagej-tutorials">ImageJ Tutorials</a>
* {@code LoadAndDisplayDataset} tutorial.
*/
@Plugin(type = Command.class, menuPath = "Plugins>My Useful Command")
public class UsefulCommand implements Command {
@Parameter
private DatasetIOService datasetIOService;
@Parameter
private LogService log;
@Parameter
private File destination;
@Parameter
private Dataset image;
@Override
public void run() {
try {
image = datasetIOService.save(image, destination.getAbsolutePath());
}
catch (final IOException exc) {
log.error(exc);
}
}
}