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;
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 );
}
}
......@@ -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";
......
......@@ -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 )
{
......
......@@ -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;
}
......@@ -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 ];
}
......
......@@ -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 )
......
......@@ -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" );
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment