knime-ip / knip

KNIME Image Processing Extension
https://www.knime.com/community/image-processing
50 stars 11 forks source link

Exceptions when reading large image files #385

Open imagejan opened 8 years ago

imagejan commented 8 years ago

I don't manage to read large image files with the Image Reader. I have a 29GB .ics/.ids stack (written using SCIFIO in Fiji, it also opens fine in Fiji). (I'm using ics/ids because that's the only one that doesn't take hours to export with SCIFIO.)

If the Image Reader is configured to Array_Image_Factory, the exception is:

java.lang.RuntimeException: Number of elements in Container too big, use for example CellContainer instead: 7670333440 > 2147483647
    at net.imglib2.img.array.ArrayImgFactory.numEntitiesRangeCheck(ArrayImgFactory.java:71)
    at net.imglib2.img.array.ArrayImgFactory.createFloatInstance(ArrayImgFactory.java:103)
    at net.imglib2.img.array.ArrayImgFactory.createFloatInstance(ArrayImgFactory.java:58)
    at net.imglib2.type.numeric.real.FloatType.createSuitableNativeImg(FloatType.java:90)
    at net.imglib2.img.array.ArrayImgFactory.create(ArrayImgFactory.java:63)
    at net.imglib2.img.array.ArrayImgFactory.create(ArrayImgFactory.java:58)
    at io.scif.img.ImgOpener.openImgs(ImgOpener.java:354)
    at io.scif.img.ImgOpener.openImg(ImgOpener.java:529)
    at org.knime.knip.io.ScifioImgSource.getImg(ScifioImgSource.java:293)
    at org.knime.knip.io.nodes.imgreader2.AbstractReadImgFunction.readImageAndMetadata(AbstractReadImgFunction.java:138)
    at org.knime.knip.io.nodes.imgreader2.readfromdialog.ReadImg2Function.lambda$0(ReadImg2Function.java:69)
    at java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:110)
    at java.util.stream.IntPipeline$Head.forEachOrdered(IntPipeline.java:567)
    at org.knime.knip.io.nodes.imgreader2.readfromdialog.ReadImg2Function.apply(ReadImg2Function.java:67)
    at org.knime.knip.io.nodes.imgreader2.readfromdialog.ImgReader2NodeModel.execute(ImgReader2NodeModel.java:166)
    at org.knime.core.node.NodeModel.execute(NodeModel.java:732)
    at org.knime.core.node.NodeModel.executeModel(NodeModel.java:566)
    at org.knime.core.node.Node.invokeFullyNodeModelExecute(Node.java:1146)
    at org.knime.core.node.Node.execute(Node.java:933)
    at org.knime.core.node.workflow.NativeNodeContainer.performExecuteNode(NativeNodeContainer.java:556)
    at org.knime.core.node.exec.LocalNodeExecutionJob.mainExecute(LocalNodeExecutionJob.java:95)
    at org.knime.core.node.workflow.NodeExecutionJob.internalRun(NodeExecutionJob.java:179)
    at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:110)
    at org.knime.core.util.ThreadUtils$RunnableWithContextImpl.runWithContext(ThreadUtils.java:328)
    at org.knime.core.util.ThreadUtils$RunnableWithContext.run(ThreadUtils.java:204)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at org.knime.core.util.ThreadPool$MyFuture.run(ThreadPool.java:123)
    at org.knime.core.util.ThreadPool$Worker.run(ThreadPool.java:246)

If Cell Image Factory is used, I get:

java.lang.IllegalArgumentException: No compatible service: io.scif.SCIFIOService
    at org.scijava.service.ServiceHelper.loadService(ServiceHelper.java:243)
    at org.scijava.service.ServiceHelper.loadService(ServiceHelper.java:194)
    at org.scijava.service.ServiceHelper.loadServices(ServiceHelper.java:170)
    at org.scijava.Context.<init>(Context.java:278)
    at org.scijava.Context.<init>(Context.java:234)
    at org.scijava.Context.<init>(Context.java:174)
    at org.scijava.Context.<init>(Context.java:160)
    at io.scif.img.AbstractImgIOComponent.<init>(AbstractImgIOComponent.java:57)
    at io.scif.img.ImgOpener.<init>(ImgOpener.java:94)
    at io.scif.img.IO.opener(IO.java:382)
    at io.scif.img.IO.openImgs(IO.java:78)
    at io.scif.img.IO.open(IO.java:417)
    at org.knime.knip.io.ScifioImgSource.getImg(ScifioImgSource.java:256)
    at org.knime.knip.io.nodes.imgreader2.AbstractReadImgFunction.readImageAndMetadata(AbstractReadImgFunction.java:138)
    at org.knime.knip.io.nodes.imgreader2.readfromdialog.ReadImg2Function.lambda$0(ReadImg2Function.java:69)
    at java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:110)
    at java.util.stream.IntPipeline$Head.forEachOrdered(IntPipeline.java:567)
    at org.knime.knip.io.nodes.imgreader2.readfromdialog.ReadImg2Function.apply(ReadImg2Function.java:67)
    at org.knime.knip.io.nodes.imgreader2.readfromdialog.ImgReader2NodeModel.execute(ImgReader2NodeModel.java:166)
    at org.knime.core.node.NodeModel.execute(NodeModel.java:732)
    at org.knime.core.node.NodeModel.executeModel(NodeModel.java:566)
    at org.knime.core.node.Node.invokeFullyNodeModelExecute(Node.java:1146)
    at org.knime.core.node.Node.execute(Node.java:933)
    at org.knime.core.node.workflow.NativeNodeContainer.performExecuteNode(NativeNodeContainer.java:556)
    at org.knime.core.node.exec.LocalNodeExecutionJob.mainExecute(LocalNodeExecutionJob.java:95)
    at org.knime.core.node.workflow.NodeExecutionJob.internalRun(NodeExecutionJob.java:179)
    at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:110)
    at org.knime.core.util.ThreadUtils$RunnableWithContextImpl.runWithContext(ThreadUtils.java:328)
    at org.knime.core.util.ThreadUtils$RunnableWithContext.run(ThreadUtils.java:204)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at org.knime.core.util.ThreadPool$MyFuture.run(ThreadPool.java:123)
    at org.knime.core.util.ThreadPool$Worker.run(ThreadPool.java:246)
imagejan commented 7 years ago

See also #353, sorry if this is a duplicate.