diff --git a/src/main/java/bdv/AbstractViewerSetupImgLoader.java b/src/main/java/bdv/AbstractViewerSetupImgLoader.java
index 505e23312a049e928833048856c29c1287ee237e..51c3c6ddd58ecf3a832ad289cb64ca22604696e1 100644
--- a/src/main/java/bdv/AbstractViewerSetupImgLoader.java
+++ b/src/main/java/bdv/AbstractViewerSetupImgLoader.java
@@ -1,5 +1,6 @@
package bdv;
+import mpicbg.spim.data.generic.sequence.ImgLoaderHint;
import net.imglib2.RandomAccessibleInterval;
import net.imglib2.Volatile;
@@ -28,8 +29,8 @@ public abstract class AbstractViewerSetupImgLoader< T, V extends Volatile< T > >
}
@Override
- public RandomAccessibleInterval< T > getImage( final int timepointId )
+ public RandomAccessibleInterval< T > getImage( final int timepointId, final ImgLoaderHint... hints )
{
- return getImage( timepointId, 0 );
+ return getImage( timepointId, 0, hints );
}
}
diff --git a/src/main/java/bdv/BigDataViewer.java b/src/main/java/bdv/BigDataViewer.java
index 05a4d8ff0973f6e759ab2558fc9f5b65fdfb64aa..456cdd4556cb41f0c0d0ca71c6d59a07b6d78342 100644
--- a/src/main/java/bdv/BigDataViewer.java
+++ b/src/main/java/bdv/BigDataViewer.java
@@ -42,19 +42,6 @@ import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.filechooser.FileFilter;
-import mpicbg.spim.data.SpimDataException;
-import mpicbg.spim.data.generic.AbstractSpimData;
-import mpicbg.spim.data.generic.sequence.AbstractSequenceDescription;
-import mpicbg.spim.data.generic.sequence.BasicViewSetup;
-import mpicbg.spim.data.sequence.Angle;
-import mpicbg.spim.data.sequence.Channel;
-import net.imglib2.Volatile;
-import net.imglib2.display.RealARGBColorConverter;
-import net.imglib2.display.ScaledARGBConverter;
-import net.imglib2.type.numeric.ARGBType;
-import net.imglib2.type.numeric.RealType;
-import net.imglib2.type.volatiles.VolatileARGBType;
-
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
@@ -89,6 +76,18 @@ import bdv.viewer.SourceAndConverter;
import bdv.viewer.ViewerFrame;
import bdv.viewer.ViewerOptions;
import bdv.viewer.ViewerPanel;
+import mpicbg.spim.data.SpimDataException;
+import mpicbg.spim.data.generic.AbstractSpimData;
+import mpicbg.spim.data.generic.sequence.AbstractSequenceDescription;
+import mpicbg.spim.data.generic.sequence.BasicViewSetup;
+import mpicbg.spim.data.sequence.Angle;
+import mpicbg.spim.data.sequence.Channel;
+import net.imglib2.Volatile;
+import net.imglib2.display.RealARGBColorConverter;
+import net.imglib2.display.ScaledARGBConverter;
+import net.imglib2.type.numeric.ARGBType;
+import net.imglib2.type.numeric.RealType;
+import net.imglib2.type.volatiles.VolatileARGBType;
public class BigDataViewer
{
@@ -695,8 +694,12 @@ public class BigDataViewer
// final String fn = "/Users/Pietzsch/Desktop/bdv example/drosophila 2.xml";
// final String fn = "/Users/pietzsch/Desktop/data/clusterValia/140219-1/valia-140219-1.xml";
// final String fn = "/Users/Pietzsch/Desktop/data/catmaid.xml";
- final String fn = "src/main/resources/openconnectome-bock11-neariso.xml";
+// final String fn = "src/main/resources/openconnectome-bock11-neariso.xml";
// final String fn = "/home/saalfeld/catmaid.xml";
+// final String fn = "/home/saalfeld/catmaid-fafb00-v9.xml";
+// final String fn = "/home/saalfeld/catmaid-fafb00-sample_A_cutout_3k.xml";
+ final String fn = "/home/saalfeld/catmaid-thorsten.xml";
+// final String fn = "/home/saalfeld/knossos-example.xml";
// final String fn = "/Users/Pietzsch/Desktop/data/catmaid-confocal.xml";
// final String fn = "/Users/pietzsch/desktop/data/BDV130418A325/BDV130418A325_NoTempReg.xml";
// final String fn = "/Users/pietzsch/Desktop/data/valia2/valia.xml";
diff --git a/src/main/java/bdv/img/catmaid/CatmaidImageLoader.java b/src/main/java/bdv/img/catmaid/CatmaidImageLoader.java
index ef35c4716c161eace95edd136c74c3adb12eab51..1489165e308676cb11a3022d5890961905a0cd59 100644
--- a/src/main/java/bdv/img/catmaid/CatmaidImageLoader.java
+++ b/src/main/java/bdv/img/catmaid/CatmaidImageLoader.java
@@ -28,15 +28,6 @@
*/
package bdv.img.catmaid;
-import mpicbg.spim.data.generic.sequence.ImgLoaderHint;
-import net.imglib2.RandomAccessibleInterval;
-import net.imglib2.img.NativeImg;
-import net.imglib2.img.basictypeaccess.volatiles.array.VolatileIntArray;
-import net.imglib2.realtransform.AffineTransform3D;
-import net.imglib2.type.NativeType;
-import net.imglib2.type.numeric.ARGBType;
-import net.imglib2.type.volatiles.VolatileARGBType;
-import net.imglib2.util.Fraction;
import bdv.AbstractViewerSetupImgLoader;
import bdv.ViewerImgLoader;
import bdv.ViewerSetupImgLoader;
@@ -46,6 +37,15 @@ import bdv.img.cache.LoadingStrategy;
import bdv.img.cache.VolatileGlobalCellCache;
import bdv.img.cache.VolatileImgCells;
import bdv.img.cache.VolatileImgCells.CellCache;
+import mpicbg.spim.data.generic.sequence.ImgLoaderHint;
+import net.imglib2.RandomAccessibleInterval;
+import net.imglib2.img.NativeImg;
+import net.imglib2.img.basictypeaccess.volatiles.array.VolatileIntArray;
+import net.imglib2.realtransform.AffineTransform3D;
+import net.imglib2.type.NativeType;
+import net.imglib2.type.numeric.ARGBType;
+import net.imglib2.type.volatiles.VolatileARGBType;
+import net.imglib2.util.Fraction;
public class CatmaidImageLoader extends AbstractViewerSetupImgLoader< ARGBType, VolatileARGBType > implements ViewerImgLoader
{
@@ -246,7 +246,7 @@ public class CatmaidImageLoader extends AbstractViewerSetupImgLoader< ARGBType,
img.setLinkedType( linkedType );
return img;
}
-
+
@Override
public RandomAccessibleInterval< VolatileARGBType > getVolatileImage( final int timepointId, final int level, final ImgLoaderHint... hints )
{
diff --git a/src/main/java/bdv/img/openconnectome/OpenConnectomeDataset.java b/src/main/java/bdv/img/openconnectome/OpenConnectomeDataset.java
index d0e83c741b20a3840f6d7dd6b2d3fbaff10338eb..48305bd1024c882fe776d2c943224fc3d5eb6bfb 100644
--- a/src/main/java/bdv/img/openconnectome/OpenConnectomeDataset.java
+++ b/src/main/java/bdv/img/openconnectome/OpenConnectomeDataset.java
@@ -37,9 +37,8 @@ public class OpenConnectomeDataset implements Serializable
public HashMap< String, int[] > cube_dimension;
public String description;
- public HashMap< String, long[] > imagesize;
- public HashMap< String, Long > neariso_scaledown;
- public HashMap< String, long[] > offset;
+ public HashMap< String, long[] > neariso_imagesize;
+ public HashMap< String, double[] > neariso_offset;
public long[] resolutions;
- public HashMap< String, double[] > voxelres;
+ public HashMap< String, double[] > neariso_voxelres;
}
diff --git a/src/main/java/bdv/img/openconnectome/OpenConnectomeTokenInfo.java b/src/main/java/bdv/img/openconnectome/OpenConnectomeTokenInfo.java
index afac0d8cedb8896a3383a0b7df116ea4c689b6d3..bedb6dd5185767baca8b60896c0f607c5c3680af 100644
--- a/src/main/java/bdv/img/openconnectome/OpenConnectomeTokenInfo.java
+++ b/src/main/java/bdv/img/openconnectome/OpenConnectomeTokenInfo.java
@@ -41,28 +41,17 @@ public class OpenConnectomeTokenInfo implements Serializable
public long[][] getLevelDimensions( final String mode )
{
- final long[][] levelDimensions = new long[ dataset.imagesize.size() ][ 3 ];
+ final long[][] levelDimensions = new long[ dataset.resolutions.length ][ 3 ];
if ( mode.equals( "neariso" ) )
{
- final double zScale0 = dataset.voxelres.get( "0" )[ 2 ];
- for ( int i = 0; i < dataset.imagesize.size(); ++i )
- {
- final long[] xyz = dataset.imagesize.get( new Integer( i ).toString() );
- final double[] voxelres = dataset.voxelres.get( new Integer( i ).toString() );
- levelDimensions[ i ][ 0 ] = xyz[ 0 ];
- levelDimensions[ i ][ 1 ] = xyz[ 1 ];
-// levelDimensions[ i ][ 2 ] = ( long )( xyz[ 2 ] * zScale0 / voxelres[ 2 ] );
- levelDimensions[ i ][ 2 ] = ( long ) ( xyz[ 2 ] * zScale0 / dataset.neariso_scaledown.get( new Integer( i ).toString() ) / voxelres[ 2 ] );
- }
+ for ( int i = 0; i < dataset.resolutions.length; ++i )
+ levelDimensions[ i ] = dataset.neariso_imagesize.get( new Integer( i ).toString() ).clone();
}
else
{
- for ( int i = 0; i < dataset.imagesize.size(); ++i )
- {
- final long[] xyz = dataset.imagesize.get( new Integer( i ).toString() );
- levelDimensions[ i ] = xyz.clone();
- }
+ for ( int i = 0; i < dataset.resolutions.length; ++i )
+ levelDimensions[ i ] = dataset.imagesize.get( new Integer( i ).toString() ).clone();
}
return levelDimensions;
@@ -80,32 +69,32 @@ public class OpenConnectomeTokenInfo implements Serializable
public double[][] getLevelScales( final String mode )
{
final double[][] levelScales = new double[ dataset.resolutions.length ][ 3 ];
- long s = 1;
- final double zScale0 = dataset.voxelres.get( "0" )[ 2 ];
+ final double zScale0 = dataset.neariso_voxelres.get( "0" )[ 2 ];
if ( mode.equals( "neariso" ) )
{
- for ( int i = 0; i < dataset.neariso_scaledown.size(); ++i, s <<= 1 )
- {
- levelScales[ i ][ 0 ] = s;
- levelScales[ i ][ 1 ] = s;
- levelScales[ i ][ 2 ] = zScale0 * dataset.neariso_scaledown.get( new Integer( i ).toString() );
- }
+ for ( int i = 0; i < dataset.resolutions.length; ++i )
+ levelScales[ i ] = dataset.neariso_voxelres.get( new Integer( i ).toString() ).clone();
}
else
{
- for ( int i = 0; i < dataset.resolutions.length; ++i, s <<= 1 )
+ for ( int i = 0; i < dataset.resolutions.length; ++i )
{
- levelScales[ i ][ 0 ] = s;
- levelScales[ i ][ 1 ] = s;
- levelScales[ i ][ 2 ] = zScale0 * s;
+ levelScales[ i ] = dataset.voxelres.get( new Integer( i ).toString() ).clone();
}
}
return levelScales;
}
- public long getMinZ()
+ public long getOffsets( final String mode )
{
+ final double[][] offsets = new double[ dataset.resolutions.length ][];
+ if ( mode.equals( "neariso" ) )
+ {
+ for ( int i = 0; i < dataset.resolutions.length; ++i )
+ offset
+
+ }
return dataset.offset.get( "0" )[ 2 ];
}
diff --git a/src/main/java/bdv/img/remote/RemoteImageLoader.java b/src/main/java/bdv/img/remote/RemoteImageLoader.java
index 430ffaac59a16136658edb0256bd27b30b5b468a..5ac36e8bdea32c0f754fc9955ba318241c8caf27 100644
--- a/src/main/java/bdv/img/remote/RemoteImageLoader.java
+++ b/src/main/java/bdv/img/remote/RemoteImageLoader.java
@@ -33,18 +33,8 @@ import java.io.InputStreamReader;
import java.net.URL;
import java.util.HashMap;
-import mpicbg.spim.data.generic.sequence.ImgLoaderHint;
-import net.imglib2.FinalInterval;
-import net.imglib2.RandomAccessibleInterval;
-import net.imglib2.img.NativeImg;
-import net.imglib2.img.basictypeaccess.volatiles.array.VolatileShortArray;
-import net.imglib2.realtransform.AffineTransform3D;
-import net.imglib2.type.NativeType;
-import net.imglib2.type.numeric.integer.UnsignedShortType;
-import net.imglib2.type.volatiles.VolatileUnsignedShortType;
-import net.imglib2.util.Fraction;
-import net.imglib2.util.IntervalIndexer;
-import net.imglib2.view.Views;
+import com.google.gson.GsonBuilder;
+
import bdv.AbstractViewerSetupImgLoader;
import bdv.ViewerImgLoader;
import bdv.img.cache.CacheHints;
@@ -57,8 +47,18 @@ import bdv.img.hdf5.DimsAndExistence;
import bdv.img.hdf5.MipmapInfo;
import bdv.img.hdf5.ViewLevelId;
import bdv.util.ConstantRandomAccessible;
-
-import com.google.gson.GsonBuilder;
+import mpicbg.spim.data.generic.sequence.ImgLoaderHint;
+import net.imglib2.FinalInterval;
+import net.imglib2.RandomAccessibleInterval;
+import net.imglib2.img.NativeImg;
+import net.imglib2.img.basictypeaccess.volatiles.array.VolatileShortArray;
+import net.imglib2.realtransform.AffineTransform3D;
+import net.imglib2.type.NativeType;
+import net.imglib2.type.numeric.integer.UnsignedShortType;
+import net.imglib2.type.volatiles.VolatileUnsignedShortType;
+import net.imglib2.util.Fraction;
+import net.imglib2.util.IntervalIndexer;
+import net.imglib2.view.Views;
public class RemoteImageLoader implements ViewerImgLoader
{
@@ -245,6 +245,8 @@ public class RemoteImageLoader implements ViewerImgLoader
img.setLinkedType( linkedType );
return img;
}
+
+
@Override
public RandomAccessibleInterval< VolatileUnsignedShortType > getVolatileImage( final int timepointId, final int level, final ImgLoaderHint... hints )
diff --git a/src/main/java/bdv/spimdata/legacy/XmlIoSpimDataMinimalLegacy.java b/src/main/java/bdv/spimdata/legacy/XmlIoSpimDataMinimalLegacy.java
index 878aaed4550cb846422c640ed58a62a2a631f06b..76aad973695218ff03add6e2774acb564b104596 100644
--- a/src/main/java/bdv/spimdata/legacy/XmlIoSpimDataMinimalLegacy.java
+++ b/src/main/java/bdv/spimdata/legacy/XmlIoSpimDataMinimalLegacy.java
@@ -36,6 +36,15 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
+import org.jdom2.Element;
+
+import bdv.img.catmaid.XmlIoCatmaidImageLoader;
+import bdv.img.hdf5.Hdf5ImageLoader;
+import bdv.img.hdf5.Partition;
+import bdv.img.openconnectome.XmlIoOpenConnectomeImageLoader;
+import bdv.img.remote.XmlIoRemoteImageLoader;
+import bdv.spimdata.SequenceDescriptionMinimal;
+import bdv.spimdata.SpimDataMinimal;
import mpicbg.spim.data.XmlHelpers;
import mpicbg.spim.data.generic.sequence.BasicImgLoader;
import mpicbg.spim.data.generic.sequence.BasicViewSetup;
@@ -54,16 +63,6 @@ import net.imglib2.Dimensions;
import net.imglib2.FinalDimensions;
import net.imglib2.realtransform.AffineTransform3D;
-import org.jdom2.Element;
-
-import bdv.img.catmaid.XmlIoCatmaidImageLoader;
-import bdv.img.hdf5.Hdf5ImageLoader;
-import bdv.img.hdf5.Partition;
-import bdv.img.openconnectome.XmlIoOpenConnectomeImageLoader;
-import bdv.img.remote.XmlIoRemoteImageLoader;
-import bdv.spimdata.SequenceDescriptionMinimal;
-import bdv.spimdata.SpimDataMinimal;
-
public class XmlIoSpimDataMinimalLegacy
{
// load legacy SequenceDescription xml format
@@ -185,6 +184,12 @@ public class XmlIoSpimDataMinimalLegacy
{
return new XmlIoRemoteImageLoader().fromXml( elem, basePath, sequenceDescription );
}
+ // TODO add back when KNOSSOS backend has been converted to
+ // general block per file backend and moved into BDV
+// else if ( classn.equals( "bdv.img.knossos.KnossosImageLoader" ) )
+// {
+// return new XmlIoKnossosUnsignedByteImageLoader().fromXml( elem, basePath, sequenceDescription );
+// }
else
throw new RuntimeException( "unknown ImageLoader class" );
}