Skip to content

Commit 48fa31f

Browse files
Merge pull request #63 from PreibischLab/omezarr
OME-ZARR support for BigStitcher fusion
2 parents 5c73c31 + b89f853 commit 48fa31f

File tree

9 files changed

+503
-71
lines changed

9 files changed

+503
-71
lines changed

src/main/java/net/preibisch/mvrecon/fiji/spimdata/imgloaders/OMEZarrAttibutes.java

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,13 @@
2323
package net.preibisch.mvrecon.fiji.spimdata.imgloaders;
2424

2525
import java.net.URI;
26+
import java.net.URISyntaxException;
27+
import java.util.Arrays;
2628
import java.util.function.Function;
2729

2830
import org.janelia.saalfeldlab.n5.DatasetAttributes;
2931
import org.janelia.saalfeldlab.n5.N5Reader;
32+
import org.janelia.saalfeldlab.n5.universe.N5Factory;
3033
import org.janelia.saalfeldlab.n5.universe.N5Factory.StorageFormat;
3134
import org.janelia.saalfeldlab.n5.universe.metadata.axes.Axis;
3235
import org.janelia.saalfeldlab.n5.universe.metadata.ome.ngff.v04.OmeNgffMultiScaleMetadata;
@@ -36,6 +39,7 @@
3639
import org.janelia.saalfeldlab.n5.universe.metadata.ome.ngff.v04.coordinateTransformations.ScaleCoordinateTransformation;
3740
import org.janelia.saalfeldlab.n5.universe.metadata.ome.ngff.v04.coordinateTransformations.TranslationCoordinateTransformation;
3841

42+
import mpicbg.spim.data.sequence.VoxelDimensions;
3943
import net.imglib2.realtransform.AffineTransform3D;
4044
import util.URITools;
4145

@@ -59,7 +63,7 @@ public static OmeNgffMultiScaleMetadata[] createOMEZarrMetadata(
5963
final OmeNgffMultiScaleMetadata[] meta = new OmeNgffMultiScaleMetadata[ 1 ];
6064

6165
// dataset name and co
62-
final String path = null;
66+
final String path = "";
6367
final String type = null;
6468

6569
// axis descriptions
@@ -102,7 +106,7 @@ public static OmeNgffMultiScaleMetadata[] createOMEZarrMetadata(
102106
// if 4d and 5d, add 1's for C and T
103107
for ( int d = 3; d < n; ++d )
104108
{
105-
translation[ d ] = 1.0;
109+
translation[ d ] = 0.0;
106110
scale[ d ] = 1.0;
107111
}
108112

@@ -126,6 +130,22 @@ public static OmeNgffMultiScaleMetadata[] createOMEZarrMetadata(
126130
return meta;
127131
}
128132

133+
// TODO: this is inaccurate, we should actually estimate it from the final transformn that is applied
134+
public static double[] getResolutionS0( final VoxelDimensions vx, final double anisoF, final double downsamplingF )
135+
{
136+
final double[] resolutionS0 = vx.dimensionsAsDoubleArray();
137+
138+
// not preserving anisotropy
139+
if ( Double.isNaN( anisoF ) )
140+
resolutionS0[ 2 ] = resolutionS0[ 0 ];
141+
142+
// downsampling
143+
if ( !Double.isNaN( downsamplingF ) )
144+
Arrays.setAll( resolutionS0, d -> resolutionS0[ d ] * downsamplingF );
145+
146+
return resolutionS0;
147+
}
148+
129149
public static void loadOMEZarr( final N5Reader n5, final String dataset )
130150
{
131151
//org.janelia.saalfeldlab.n5.universe.metadata.ome.ngff.v04.OmeNgffMetadata
@@ -151,8 +171,19 @@ public static void loadOMEZarr( final N5Reader n5, final String dataset )
151171
}
152172
}
153173

154-
public static void main( String[] args )
174+
public static void main( String[] args ) throws URISyntaxException
155175
{
176+
final URI uri2 = URITools.toURI("https://keller-data.int.janelia.org/s12a/samples_for_stitching/Live%20zebra%20fish%20stitched/Live%20zebra%20plane%206/dataset.n5");///setup0/time;t0/");
177+
System.out.println( uri2.toString() );
178+
179+
//FileSystemKeyValueAccess kva = new FileSystemKeyValueAccess( FileSystems.getDefault() );
180+
181+
String s = uri2.toString();
182+
N5Factory f = new N5Factory();
183+
N5Reader r = f.openFileSystemReader( s );
184+
r.close();
185+
System.exit( 0 );
186+
156187
//final URI uri = URITools.toURI( "https://storage.googleapis.com/jax-public-ngff/KOMP/adult_lacZ/ndp/Moxd1/23420_K35061_FGut.zarr/0/" );
157188
//final String dataset = "/";
158189

src/main/java/net/preibisch/mvrecon/process/export/DisplayImage.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import fiji.util.gui.GenericDialogPlus;
3030
import ij.ImagePlus;
3131
import ij.gui.GenericDialog;
32-
import mpicbg.spim.data.sequence.ViewId;
32+
import mpicbg.spim.data.sequence.ViewDescription;
3333
import net.imglib2.Interval;
3434
import net.imglib2.RandomAccessibleInterval;
3535
import net.imglib2.exception.ImgLibException;
@@ -90,7 +90,7 @@ public < T extends RealType< T > & NativeType< T > > boolean exportImage(
9090
final double downsampling,
9191
final double anisoF,
9292
final String title,
93-
final Group< ? extends ViewId > fusionGroup )
93+
final Group< ? extends ViewDescription > fusionGroup )
9494
{
9595
// do nothing in case the image is null
9696
if ( img == null )

src/main/java/net/preibisch/mvrecon/process/export/ExportLarge2DTIFF.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,12 @@
3636
import ch.epfl.biop.kheops.ometiff.OMETiffPyramidizerExporter;
3737
import fiji.util.gui.GenericDialogPlus;
3838
import mpicbg.spim.data.sequence.ViewDescription;
39-
import mpicbg.spim.data.sequence.ViewId;
4039
import net.imglib2.FinalInterval;
4140
import net.imglib2.Interval;
4241
import net.imglib2.RandomAccessibleInterval;
4342
import net.imglib2.converter.ColorChannelOrder;
4443
import net.imglib2.converter.Converters;
4544
import net.imglib2.img.display.imagej.ImageJFunctions;
46-
import net.imglib2.multithreading.SimpleMultiThreading;
4745
import net.imglib2.position.FunctionRandomAccessible;
4846
import net.imglib2.realtransform.AffineTransform3D;
4947
import net.imglib2.type.NativeType;
@@ -99,7 +97,7 @@ public <T extends RealType<T> & NativeType<T>> boolean exportImage(
9997
final double downsampling,
10098
final double anisoF,
10199
final String title,
102-
final Group<? extends ViewId> fusionGroup )
100+
final Group<? extends ViewDescription> fusionGroup )
103101
{
104102
// hack to make the interval divisable by 16 (see https://imagesc.zulipchat.com/#narrow/stream/212929-general/topic/Writing.20large.202D.20TIFFs)
105103
if ( imgInterval.dimension( 0 ) % 16 != 0 || imgInterval.dimension( 1 ) % 16 != 0 )

0 commit comments

Comments
 (0)