Class LazyAffineFusion<T extends net.imglib2.type.numeric.RealType<T> & net.imglib2.type.NativeType<T>>
java.lang.Object
net.preibisch.mvrecon.process.fusion.lazy.LazyAffineFusion<T>
- Type Parameters:
T- type of input and output
- All Implemented Interfaces:
Consumer<net.imglib2.RandomAccessibleInterval<T>>
public class LazyAffineFusion<T extends net.imglib2.type.numeric.RealType<T> & net.imglib2.type.NativeType<T>>
extends Object
implements Consumer<net.imglib2.RandomAccessibleInterval<T>>
BigStitcher Affine Fusion in blocks
- Author:
- Stephan Preibisch
-
Constructor Summary
ConstructorsConstructorDescriptionLazyAffineFusion(net.imglib2.converter.Converter<net.imglib2.type.numeric.real.FloatType, T> converter, mpicbg.spim.data.generic.sequence.BasicImgLoader imgloader, Collection<? extends mpicbg.spim.data.sequence.ViewId> viewIds, Map<mpicbg.spim.data.sequence.ViewId, ? extends net.imglib2.realtransform.AffineTransform3D> viewRegistrations, Map<mpicbg.spim.data.sequence.ViewId, ? extends mpicbg.spim.data.generic.sequence.BasicViewDescription<?>> viewDescriptions, FusionGUI.FusionType fusionType, int interpolation, Map<mpicbg.spim.data.sequence.ViewId, mpicbg.models.AffineModel1D> intensityAdjustments, long[] globalMin, T type) Creates a consumer that will fill the requested RandomAccessibleInterval single-threaded -
Method Summary
Modifier and TypeMethodDescriptionvoidaccept(net.imglib2.RandomAccessibleInterval<T> output) protected static final <T extends net.imglib2.type.numeric.RealType<T>>
voidfinish(net.imglib2.RandomAccessibleInterval<net.imglib2.type.numeric.real.FloatType> fused, net.imglib2.RandomAccessibleInterval<T> output, net.imglib2.converter.Converter<net.imglib2.type.numeric.real.FloatType, T> converter, T type) static final <T extends net.imglib2.type.numeric.RealType<T> & net.imglib2.type.NativeType<T>>
net.imglib2.RandomAccessibleInterval<T> init(net.imglib2.converter.Converter<net.imglib2.type.numeric.real.FloatType, T> converter, mpicbg.spim.data.generic.sequence.BasicImgLoader imgloader, Collection<? extends mpicbg.spim.data.sequence.ViewId> viewIds, Map<mpicbg.spim.data.sequence.ViewId, ? extends net.imglib2.realtransform.AffineTransform3D> viewRegistrations, Map<mpicbg.spim.data.sequence.ViewId, ? extends mpicbg.spim.data.generic.sequence.BasicViewDescription<?>> viewDescriptions, FusionGUI.FusionType fusionType, int interpolation, Map<mpicbg.spim.data.sequence.ViewId, mpicbg.models.AffineModel1D> intensityAdjustments, net.imglib2.Interval fusionInterval, T type, int[] blockSize) static void
-
Constructor Details
-
LazyAffineFusion
public LazyAffineFusion(net.imglib2.converter.Converter<net.imglib2.type.numeric.real.FloatType, T> converter, mpicbg.spim.data.generic.sequence.BasicImgLoader imgloader, Collection<? extends mpicbg.spim.data.sequence.ViewId> viewIds, Map<mpicbg.spim.data.sequence.ViewId, ? extends net.imglib2.realtransform.AffineTransform3D> viewRegistrations, Map<mpicbg.spim.data.sequence.ViewId, ? extends mpicbg.spim.data.generic.sequence.BasicViewDescription<?>> viewDescriptions, FusionGUI.FusionType fusionType, int interpolation, Map<mpicbg.spim.data.sequence.ViewId, mpicbg.models.AffineModel1D> intensityAdjustments, long[] globalMin, T type) Creates a consumer that will fill the requested RandomAccessibleInterval single-threaded- Parameters:
converter- - if type is FloatType, converter can be null; converting inside the lazy construct makes sense since it often requires to save much less data (8 bit or 16 bit instead of 32-bit float)imgloader- - the imgloader to fetch raw dataviewIds- - which viewids to fuseviewRegistrations- - the registrations (must include anisotropy and downsampling if desired)viewDescriptions- - the viewdescriptionsfusionType- - how to combine pixelsinterpolation- - 1==linear, 0==nearest neighborintensityAdjustments- - intensity adjustments, can be nullglobalMin- - the output RAI typically sits at 0,0...0 because it usually is a CachedCellImage (but the actual interval to process in many blocks sits somewhere else)type- - which type to fuse
-
-
Method Details
-
accept
- Specified by:
acceptin interfaceConsumer<T extends net.imglib2.type.numeric.RealType<T> & net.imglib2.type.NativeType<T>>
-
finish
protected static final <T extends net.imglib2.type.numeric.RealType<T>> void finish(net.imglib2.RandomAccessibleInterval<net.imglib2.type.numeric.real.FloatType> fused, net.imglib2.RandomAccessibleInterval<T> output, net.imglib2.converter.Converter<net.imglib2.type.numeric.real.FloatType, T> converter, T type) -
init
public static final <T extends net.imglib2.type.numeric.RealType<T> & net.imglib2.type.NativeType<T>> net.imglib2.RandomAccessibleInterval<T> init(net.imglib2.converter.Converter<net.imglib2.type.numeric.real.FloatType, T> converter, mpicbg.spim.data.generic.sequence.BasicImgLoader imgloader, Collection<? extends mpicbg.spim.data.sequence.ViewId> viewIds, Map<mpicbg.spim.data.sequence.ViewId, ? extends net.imglib2.realtransform.AffineTransform3D> viewRegistrations, Map<mpicbg.spim.data.sequence.ViewId, ? extends mpicbg.spim.data.generic.sequence.BasicViewDescription<?>> viewDescriptions, FusionGUI.FusionType fusionType, int interpolation, Map<mpicbg.spim.data.sequence.ViewId, mpicbg.models.AffineModel1D> intensityAdjustments, net.imglib2.Interval fusionInterval, T type, int[] blockSize) -
main
-