Process images (hdf5) from bigdataviewer/bigsticher

Hello @tpietzsch, @StephanPreibisch, @hoerldavid,

I would like to apply some ij2 image processing operations to files that come from bigsticher (h5 +xml).

In my understanding bigdataviewer creates something like a IJ2 RAI out of the h5. Is this correct? How do I get a hand on It to apply further operations?

What is a good strategy to save the results? Saving h5 is really slow and this does not seem practicable. For instance the writing of 11 GB stitched data is taking more than 3 hrs, surprisingly also much longer than the writing of h5 raw data.



From java, you can use something like this:

import bdv.spimdata.SpimDataMinimal;
import bdv.spimdata.XmlIoSpimDataMinimal;
import net.imglib2.RandomAccessibleInterval;

public class Example
	public static void main( String[] args ) throws SpimDataException
		SpimDataMinimal spimdata = new XmlIoSpimDataMinimal().load( "" );
		int setupId = 0;
		int timepointId = 0;
		RandomAccessibleInterval< ? > rai = spimdata.getSequenceDescription().getImgLoader().getSetupImgLoader( setupId ).getImage( timepointId );

From Fiji UI, you can use File > Import > BigDataViewer… to open images from an xml/hdf5 as imagej stacks

1 Like


if you want to open individual sources from BDV in Fiji, you can just drag the XML onto it. It will then offer the resolution layers, so you can also load a downsampled stack.

If you want to get the data back into BDV, you need to re-save the processed stack.

Thanks @tpietzsch ,
I think this is what I need. I don’t want to open the image and imagej1 stack as they are just too big. However, I want to perform a gaussian blur or similar on the whole stack using IJ2 functions.
Eventually resave every file.
@schorb: Good to know that I can still access the subsampled data. This may do the job in some cases. However, if I want to process the full resolved data it is prohibitive to use IJ1 functions. I need to map them back into a RAI and then work with it.