NOTICE! This is a static HTML version of a legacy Fiji BugZilla bug.

The Fiji project now uses GitHub Issues for issue tracking.

Please file all new issues there.

Bug 1200 - large file pairwise stitching problem
large file pairwise stitching problem
Status: NEEDSINFO
Product: Fiji
Classification: Unclassified
Component: Plugins
unspecified
PC Windows
: P4 normal
Assigned To: Stephan Preibisch
Depends on:
Blocks:
 
Reported: 2015-12-02 07:58 CST by Alexandros Sountoulidis
Modified: 2015-12-02 09:02 CST
2 users (show)

See Also:

Description Alexandros Sountoulidis 2015-12-02 07:58:07 CST
Hello,

I know that would be nice to send the images but the files are too big. File1 4.7 GB (3072x4608 z=120 steps 8 bit, 3 channels) File2 3.7GB ( 2560x4608 z=112 steps 8 bit, 3 channels). I tried to used pairwise stitching because the overlap at the z-axis and I took the following error
Exception in thread "Thread-51" java.lang.NegativeArraySizeException
	at mpicbg.imglib.container.basictypecontainer.array.FloatArray.<init>(FloatArray.java:54)
	at mpicbg.imglib.container.array.ArrayContainerFactory.createFloatInstance(ArrayContainerFactory.java:147)
	at mpicbg.imglib.type.numeric.complex.ComplexFloatType.createSuitableDirectAccessContainer(ComplexFloatType.java:83)
	at mpicbg.imglib.container.DirectAccessContainerFactory.createContainer(DirectAccessContainerFactory.java:69)
	at mpicbg.imglib.container.DirectAccessContainerFactory.createContainer(DirectAccessContainerFactory.java:55)
	at mpicbg.imglib.image.Image.<init>(Image.java:113)
	at mpicbg.imglib.image.Image.<init>(Image.java:136)
	at mpicbg.imglib.image.ImageFactory.createImage(ImageFactory.java:69)
	at mpicbg.imglib.image.ImageFactory.createImage(ImageFactory.java:72)
	at mpicbg.imglib.algorithm.fft.FFTFunctions.computeFFT(FFTFunctions.java:389)
	at mpicbg.imglib.algorithm.fft.FourierTransform.process(FourierTransform.java:268)
	at mpicbg.imglib.algorithm.fft.PhaseCorrelation$3.run(PhaseCorrelation.java:706)
	at java.lang.Thread.run(Thread.java:662)
Exception in thread "Thread-52" java.lang.NegativeArraySizeException
	at mpicbg.imglib.container.basictypecontainer.array.FloatArray.<init>(FloatArray.java:54)
	at mpicbg.imglib.container.array.ArrayContainerFactory.createFloatInstance(ArrayContainerFactory.java:147)
	at mpicbg.imglib.type.numeric.complex.ComplexFloatType.createSuitableDirectAccessContainer(ComplexFloatType.java:83)
	at mpicbg.imglib.container.DirectAccessContainerFactory.createContainer(DirectAccessContainerFactory.java:69)
	at mpicbg.imglib.container.DirectAccessContainerFactory.createContainer(DirectAccessContainerFactory.java:55)
	at mpicbg.imglib.image.Image.<init>(Image.java:113)
	at mpicbg.imglib.image.Image.<init>(Image.java:136)
	at mpicbg.imglib.image.ImageFactory.createImage(ImageFactory.java:69)
	at mpicbg.imglib.image.ImageFactory.createImage(ImageFactory.java:72)
	at mpicbg.imglib.algorithm.fft.FFTFunctions.computeFFT(FFTFunctions.java:389)
	at mpicbg.imglib.algorithm.fft.FourierTransform.process(FourierTransform.java:268)
	at mpicbg.imglib.algorithm.fft.PhaseCorrelation$3.run(PhaseCorrelation.java:711)
	at java.lang.Thread.run(Thread.java:662)
version = 1.5
C:\Users\Samakovlis\.ImageJ_3D_Viewer.props (The system cannot find the file specified)
nFrames = 1
version = 1.5
nFrames = 1
Exception in thread "Thread-2707" java.lang.NegativeArraySizeException
	at mpicbg.imglib.container.basictypecontainer.array.FloatArray.<init>(FloatArray.java:54)
	at mpicbg.imglib.container.array.ArrayContainerFactory.createFloatInstance(ArrayContainerFactory.java:147)
	at mpicbg.imglib.type.numeric.complex.ComplexFloatType.createSuitableDirectAccessContainer(ComplexFloatType.java:83)
	at mpicbg.imglib.container.DirectAccessContainerFactory.createContainer(DirectAccessContainerFactory.java:69)
	at mpicbg.imglib.container.DirectAccessContainerFactory.createContainer(DirectAccessContainerFactory.java:55)
	at mpicbg.imglib.image.Image.<init>(Image.java:113)
	at mpicbg.imglib.image.Image.<init>(Image.java:136)
	at mpicbg.imglib.image.ImageFactory.createImage(ImageFactory.java:69)
	at mpicbg.imglib.image.ImageFactory.createImage(ImageFactory.java:72)
	at mpicbg.imglib.algorithm.fft.FFTFunctions.computeFFT(FFTFunctions.java:389)
	at mpicbg.imglib.algorithm.fft.FourierTransform.process(FourierTransform.java:268)
	at mpicbg.imglib.algorithm.fft.PhaseCorrelation$3.run(PhaseCorrelation.java:706)
	at java.lang.Thread.run(Thread.java:662)
Exception in thread "Thread-2708" java.lang.NegativeArraySizeException
	at mpicbg.imglib.container.basictypecontainer.array.FloatArray.<init>(FloatArray.java:54)
	at mpicbg.imglib.container.array.ArrayContainerFactory.createFloatInstance(ArrayContainerFactory.java:147)
	at mpicbg.imglib.type.numeric.complex.ComplexFloatType.createSuitableDirectAccessContainer(ComplexFloatType.java:83)
	at mpicbg.imglib.container.DirectAccessContainerFactory.createContainer(DirectAccessContainerFactory.java:69)
	at mpicbg.imglib.container.DirectAccessContainerFactory.createContainer(DirectAccessContainerFactory.java:55)
	at mpicbg.imglib.image.Image.<init>(Image.java:113)
	at mpicbg.imglib.image.Image.<init>(Image.java:136)
	at mpicbg.imglib.image.ImageFactory.createImage(ImageFactory.java:69)
	at mpicbg.imglib.image.ImageFactory.createImage(ImageFactory.java:72)
	at mpicbg.imglib.algorithm.fft.FFTFunctions.computeFFT(FFTFunctions.java:389)
	at mpicbg.imglib.algorithm.fft.FourierTransform.process(FourierTransform.java:268)
	at mpicbg.imglib.algorithm.fft.PhaseCorrelation$3.run(PhaseCorrelation.java:711)
	at java.lang.Thread.run(Thread.java:662)
Exception in thread "Thread-4059" java.lang.NegativeArraySizeException
	at mpicbg.imglib.container.basictypecontainer.array.FloatArray.<init>(FloatArray.java:54)
	at mpicbg.imglib.container.array.ArrayContainerFactory.createFloatInstance(ArrayContainerFactory.java:147)
	at mpicbg.imglib.type.numeric.complex.ComplexFloatType.createSuitableDirectAccessContainer(ComplexFloatType.java:83)
	at mpicbg.imglib.container.DirectAccessContainerFactory.createContainer(DirectAccessContainerFactory.java:69)
	at mpicbg.imglib.container.DirectAccessContainerFactory.createContainer(DirectAccessContainerFactory.java:55)
	at mpicbg.imglib.image.Image.<init>(Image.java:113)
	at mpicbg.imglib.image.Image.<init>(Image.java:136)
	at mpicbg.imglib.image.ImageFactory.createImage(ImageFactory.java:69)
	at mpicbg.imglib.image.ImageFactory.createImage(ImageFactory.java:72)
	at mpicbg.imglib.algorithm.fft.FFTFunctions.computeFFT(FFTFunctions.java:389)
	at mpicbg.imglib.algorithm.fft.FourierTransform.process(FourierTransform.java:268)
	at mpicbg.imglib.algorithm.fft.PhaseCorrelation$3.run(PhaseCorrelation.java:706)
	at java.lang.Thread.run(Thread.java:662)
Exception in thread "Thread-4058" java.lang.NegativeArraySizeException
	at mpicbg.imglib.container.basictypecontainer.array.FloatArray.<init>(FloatArray.java:54)
	at mpicbg.imglib.container.array.ArrayContainerFactory.createFloatInstance(ArrayContainerFactory.java:147)
	at mpicbg.imglib.type.numeric.complex.ComplexFloatType.createSuitableDirectAccessContainer(ComplexFloatType.java:83)
	at mpicbg.imglib.container.DirectAccessContainerFactory.createContainer(DirectAccessContainerFactory.java:69)
	at mpicbg.imglib.container.DirectAccessContainerFactory.createContainer(DirectAccessContainerFactory.java:55)
	at mpicbg.imglib.image.Image.<init>(Image.java:113)
	at mpicbg.imglib.image.Image.<init>(Image.java:136)
	at mpicbg.imglib.image.ImageFactory.createImage(ImageFactory.java:69)
	at mpicbg.imglib.image.ImageFactory.createImage(ImageFactory.java:72)
	at mpicbg.imglib.algorithm.fft.FFTFunctions.computeFFT(FFTFunctions.java:389)
	at mpicbg.imglib.algorithm.fft.FourierTransform.process(FourierTransform.java:268)
	at mpicbg.imglib.algorithm.fft.PhaseCorrelation$3.run(PhaseCorrelation.java:711)
	at java.lang.Thread.run(Thread.java:662)
Exception in thread "Thread-5409" java.lang.NegativeArraySizeException
	at mpicbg.imglib.container.basictypecontainer.array.FloatArray.<init>(FloatArray.java:54)
	at mpicbg.imglib.container.array.ArrayContainerFactory.createFloatInstance(ArrayContainerFactory.java:147)
	at mpicbg.imglib.type.numeric.complex.ComplexFloatType.createSuitableDirectAccessContainer(ComplexFloatType.java:83)
	at mpicbg.imglib.container.DirectAccessContainerFactory.createContainer(DirectAccessContainerFactory.java:69)
	at mpicbg.imglib.container.DirectAccessContainerFactory.createContainer(DirectAccessContainerFactory.java:55)
	at mpicbg.imglib.image.Image.<init>(Image.java:113)
	at mpicbg.imglib.image.Image.<init>(Image.java:136)
	at mpicbg.imglib.image.ImageFactory.createImage(ImageFactory.java:69)
	at mpicbg.imglib.image.ImageFactory.createImage(ImageFactory.java:72)
	at mpicbg.imglib.algorithm.fft.FFTFunctions.computeFFT(FFTFunctions.java:389)
	at mpicbg.imglib.algorithm.fft.FourierTransform.process(FourierTransform.java:268)
	at mpicbg.imglib.algorithm.fft.PhaseCorrelation$3.run(PhaseCorrelation.java:706)
	at java.lang.Thread.run(Thread.java:662)
Exception in thread "Thread-5410" java.lang.NegativeArraySizeException
	at mpicbg.imglib.container.basictypecontainer.array.FloatArray.<init>(FloatArray.java:54)
	at mpicbg.imglib.container.array.ArrayContainerFactory.createFloatInstance(ArrayContainerFactory.java:147)
	at mpicbg.imglib.type.numeric.complex.ComplexFloatType.createSuitableDirectAccessContainer(ComplexFloatType.java:83)
	at mpicbg.imglib.container.DirectAccessContainerFactory.createContainer(DirectAccessContainerFactory.java:69)
	at mpicbg.imglib.container.DirectAccessContainerFactory.createContainer(DirectAccessContainerFactory.java:55)
	at mpicbg.imglib.image.Image.<init>(Image.java:113)
	at mpicbg.imglib.image.Image.<init>(Image.java:136)
	at mpicbg.imglib.image.ImageFactory.createImage(ImageFactory.java:69)
	at mpicbg.imglib.image.ImageFactory.createImage(ImageFactory.java:72)
	at mpicbg.imglib.algorithm.fft.FFTFunctions.computeFFT(FFTFunctions.java:389)
	at mpicbg.imglib.algorithm.fft.FourierTransform.process(FourierTransform.java:268)
	at mpicbg.imglib.algorithm.fft.PhaseCorrelation$3.run(PhaseCorrelation.java:711)
	at java.lang.Thread.run(Thread.java:662)
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
........................................................................
Done: Checksummer

There is no problem if I reduce the dimensions of the images 50%. Since the sytem has 12 physical cores (and 12 logical) and 64GB RAM, I think that it has to do with the settings of the plugin.

Can you help me please?

Thank you very much for your great work and the help, of coarse.

Kind regards,
Alex

Information about your version of Java:

  os.arch => amd64
  os.name => Windows NT (unknown)
  os.version => 6.2
  java.version => 1.6.0_24
  java.vendor => Sun Microsystems Inc.
  java.runtime.name => Java(TM) SE Runtime Environment
  java.runtime.version => 1.6.0_24-b07
  java.vm.name => Java HotSpot(TM) 64-Bit Server VM
  java.vm.version => 19.1-b02
  java.vm.vendor => Sun Microsystems Inc.
  java.vm.info => mixed mode
  java.awt.graphicsenv => sun.awt.Win32GraphicsEnvironment
  java.specification.name => Java Platform API Specification
  java.specification.version => 1.6
  sun.cpu.endian => little
  sun.desktop => windows
  file.separator => \

The up-to-date check says: REMIND_LATER

Information relevant to JAVA_HOME related problems:

  JAVA_HOME is set to: C:\Fiji.app/java/win64/jdk1.6.0_24//jre
  imagej.dir => C:\Fiji.app

Information about the version of each plugin:

Activated update sites:
ImageJ: http://update.imagej.net/ (last check:20151122025629)
Fiji: http://update.fiji.sc/ (last check:20151126153359)
Comment 1 Curtis Rueden 2015-12-02 09:02:28 CST
Looks like an issue with the use of ImgLib's ArrayContainer. Stephan, do you agree? Is there a way to switch the code to use Planar or Cell container instead internally?

In the meantime, as a workaround, you could try stitching with fewer Z planes.