Skip to content
Snippets Groups Projects
Commit ef0ba222 authored by Stephan Saalfeld's avatar Stephan Saalfeld
Browse files

work in progress to adapt openconnectome to new api

parent f652d546
No related branches found
No related tags found
No related merge requests found
package bdv; package bdv;
import mpicbg.spim.data.generic.sequence.ImgLoaderHint;
import net.imglib2.RandomAccessibleInterval; import net.imglib2.RandomAccessibleInterval;
import net.imglib2.Volatile; import net.imglib2.Volatile;
...@@ -28,8 +29,8 @@ public abstract class AbstractViewerSetupImgLoader< T, V extends Volatile< T > > ...@@ -28,8 +29,8 @@ public abstract class AbstractViewerSetupImgLoader< T, V extends Volatile< T > >
} }
@Override @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 );
} }
} }
...@@ -42,19 +42,6 @@ import javax.swing.JMenuBar; ...@@ -42,19 +42,6 @@ import javax.swing.JMenuBar;
import javax.swing.JMenuItem; import javax.swing.JMenuItem;
import javax.swing.filechooser.FileFilter; 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.Document;
import org.jdom2.Element; import org.jdom2.Element;
import org.jdom2.JDOMException; import org.jdom2.JDOMException;
...@@ -89,6 +76,18 @@ import bdv.viewer.SourceAndConverter; ...@@ -89,6 +76,18 @@ import bdv.viewer.SourceAndConverter;
import bdv.viewer.ViewerFrame; import bdv.viewer.ViewerFrame;
import bdv.viewer.ViewerOptions; import bdv.viewer.ViewerOptions;
import bdv.viewer.ViewerPanel; 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 public class BigDataViewer
{ {
...@@ -695,8 +694,12 @@ 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/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/clusterValia/140219-1/valia-140219-1.xml";
// final String fn = "/Users/Pietzsch/Desktop/data/catmaid.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.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/catmaid-confocal.xml";
// final String fn = "/Users/pietzsch/desktop/data/BDV130418A325/BDV130418A325_NoTempReg.xml"; // final String fn = "/Users/pietzsch/desktop/data/BDV130418A325/BDV130418A325_NoTempReg.xml";
// final String fn = "/Users/pietzsch/Desktop/data/valia2/valia.xml"; // final String fn = "/Users/pietzsch/Desktop/data/valia2/valia.xml";
......
...@@ -28,15 +28,6 @@ ...@@ -28,15 +28,6 @@
*/ */
package bdv.img.catmaid; 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.AbstractViewerSetupImgLoader;
import bdv.ViewerImgLoader; import bdv.ViewerImgLoader;
import bdv.ViewerSetupImgLoader; import bdv.ViewerSetupImgLoader;
...@@ -46,6 +37,15 @@ import bdv.img.cache.LoadingStrategy; ...@@ -46,6 +37,15 @@ import bdv.img.cache.LoadingStrategy;
import bdv.img.cache.VolatileGlobalCellCache; import bdv.img.cache.VolatileGlobalCellCache;
import bdv.img.cache.VolatileImgCells; import bdv.img.cache.VolatileImgCells;
import bdv.img.cache.VolatileImgCells.CellCache; 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 public class CatmaidImageLoader extends AbstractViewerSetupImgLoader< ARGBType, VolatileARGBType > implements ViewerImgLoader
{ {
...@@ -246,7 +246,7 @@ public class CatmaidImageLoader extends AbstractViewerSetupImgLoader< ARGBType, ...@@ -246,7 +246,7 @@ public class CatmaidImageLoader extends AbstractViewerSetupImgLoader< ARGBType,
img.setLinkedType( linkedType ); img.setLinkedType( linkedType );
return img; return img;
} }
@Override @Override
public RandomAccessibleInterval< VolatileARGBType > getVolatileImage( final int timepointId, final int level, final ImgLoaderHint... hints ) public RandomAccessibleInterval< VolatileARGBType > getVolatileImage( final int timepointId, final int level, final ImgLoaderHint... hints )
{ {
......
...@@ -37,9 +37,8 @@ public class OpenConnectomeDataset implements Serializable ...@@ -37,9 +37,8 @@ public class OpenConnectomeDataset implements Serializable
public HashMap< String, int[] > cube_dimension; public HashMap< String, int[] > cube_dimension;
public String description; public String description;
public HashMap< String, long[] > imagesize; public HashMap< String, long[] > neariso_imagesize;
public HashMap< String, Long > neariso_scaledown; public HashMap< String, double[] > neariso_offset;
public HashMap< String, long[] > offset;
public long[] resolutions; public long[] resolutions;
public HashMap< String, double[] > voxelres; public HashMap< String, double[] > neariso_voxelres;
} }
...@@ -41,28 +41,17 @@ public class OpenConnectomeTokenInfo implements Serializable ...@@ -41,28 +41,17 @@ public class OpenConnectomeTokenInfo implements Serializable
public long[][] getLevelDimensions( final String mode ) 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" ) ) if ( mode.equals( "neariso" ) )
{ {
final double zScale0 = dataset.voxelres.get( "0" )[ 2 ]; for ( int i = 0; i < dataset.resolutions.length; ++i )
for ( int i = 0; i < dataset.imagesize.size(); ++i ) levelDimensions[ i ] = dataset.neariso_imagesize.get( new Integer( i ).toString() ).clone();
{
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 ] );
}
} }
else else
{ {
for ( int i = 0; i < dataset.imagesize.size(); ++i ) for ( int i = 0; i < dataset.resolutions.length; ++i )
{ levelDimensions[ i ] = dataset.imagesize.get( new Integer( i ).toString() ).clone();
final long[] xyz = dataset.imagesize.get( new Integer( i ).toString() );
levelDimensions[ i ] = xyz.clone();
}
} }
return levelDimensions; return levelDimensions;
...@@ -80,32 +69,32 @@ public class OpenConnectomeTokenInfo implements Serializable ...@@ -80,32 +69,32 @@ public class OpenConnectomeTokenInfo implements Serializable
public double[][] getLevelScales( final String mode ) public double[][] getLevelScales( final String mode )
{ {
final double[][] levelScales = new double[ dataset.resolutions.length ][ 3 ]; final double[][] levelScales = new double[ dataset.resolutions.length ][ 3 ];
long s = 1; final double zScale0 = dataset.neariso_voxelres.get( "0" )[ 2 ];
final double zScale0 = dataset.voxelres.get( "0" )[ 2 ];
if ( mode.equals( "neariso" ) ) if ( mode.equals( "neariso" ) )
{ {
for ( int i = 0; i < dataset.neariso_scaledown.size(); ++i, s <<= 1 ) for ( int i = 0; i < dataset.resolutions.length; ++i )
{ levelScales[ i ] = dataset.neariso_voxelres.get( new Integer( i ).toString() ).clone();
levelScales[ i ][ 0 ] = s;
levelScales[ i ][ 1 ] = s;
levelScales[ i ][ 2 ] = zScale0 * dataset.neariso_scaledown.get( new Integer( i ).toString() );
}
} }
else 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 ] = dataset.voxelres.get( new Integer( i ).toString() ).clone();
levelScales[ i ][ 1 ] = s;
levelScales[ i ][ 2 ] = zScale0 * s;
} }
} }
return levelScales; 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 ]; return dataset.offset.get( "0" )[ 2 ];
} }
......
...@@ -33,18 +33,8 @@ import java.io.InputStreamReader; ...@@ -33,18 +33,8 @@ import java.io.InputStreamReader;
import java.net.URL; import java.net.URL;
import java.util.HashMap; import java.util.HashMap;
import mpicbg.spim.data.generic.sequence.ImgLoaderHint; import com.google.gson.GsonBuilder;
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 bdv.AbstractViewerSetupImgLoader; import bdv.AbstractViewerSetupImgLoader;
import bdv.ViewerImgLoader; import bdv.ViewerImgLoader;
import bdv.img.cache.CacheHints; import bdv.img.cache.CacheHints;
...@@ -57,8 +47,18 @@ import bdv.img.hdf5.DimsAndExistence; ...@@ -57,8 +47,18 @@ import bdv.img.hdf5.DimsAndExistence;
import bdv.img.hdf5.MipmapInfo; import bdv.img.hdf5.MipmapInfo;
import bdv.img.hdf5.ViewLevelId; import bdv.img.hdf5.ViewLevelId;
import bdv.util.ConstantRandomAccessible; import bdv.util.ConstantRandomAccessible;
import mpicbg.spim.data.generic.sequence.ImgLoaderHint;
import com.google.gson.GsonBuilder; 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 public class RemoteImageLoader implements ViewerImgLoader
{ {
...@@ -245,6 +245,8 @@ public class RemoteImageLoader implements ViewerImgLoader ...@@ -245,6 +245,8 @@ public class RemoteImageLoader implements ViewerImgLoader
img.setLinkedType( linkedType ); img.setLinkedType( linkedType );
return img; return img;
} }
@Override @Override
public RandomAccessibleInterval< VolatileUnsignedShortType > getVolatileImage( final int timepointId, final int level, final ImgLoaderHint... hints ) public RandomAccessibleInterval< VolatileUnsignedShortType > getVolatileImage( final int timepointId, final int level, final ImgLoaderHint... hints )
......
...@@ -36,6 +36,15 @@ import java.util.ArrayList; ...@@ -36,6 +36,15 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; 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.XmlHelpers;
import mpicbg.spim.data.generic.sequence.BasicImgLoader; import mpicbg.spim.data.generic.sequence.BasicImgLoader;
import mpicbg.spim.data.generic.sequence.BasicViewSetup; import mpicbg.spim.data.generic.sequence.BasicViewSetup;
...@@ -54,16 +63,6 @@ import net.imglib2.Dimensions; ...@@ -54,16 +63,6 @@ import net.imglib2.Dimensions;
import net.imglib2.FinalDimensions; import net.imglib2.FinalDimensions;
import net.imglib2.realtransform.AffineTransform3D; 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 public class XmlIoSpimDataMinimalLegacy
{ {
// load legacy SequenceDescription xml format // load legacy SequenceDescription xml format
...@@ -185,6 +184,12 @@ public class XmlIoSpimDataMinimalLegacy ...@@ -185,6 +184,12 @@ public class XmlIoSpimDataMinimalLegacy
{ {
return new XmlIoRemoteImageLoader().fromXml( elem, basePath, sequenceDescription ); 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 else
throw new RuntimeException( "unknown ImageLoader class" ); throw new RuntimeException( "unknown ImageLoader class" );
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment