Package net.imglib2.interpolation.stack
Class NearestNeighborRealRandomAccessibleStackInterpolator<T>
- java.lang.Object
-
- net.imglib2.AbstractEuclideanSpace
-
- net.imglib2.interpolation.stack.NearestNeighborRealRandomAccessibleStackInterpolator<T>
-
- Type Parameters:
T- the pixel type
- All Implemented Interfaces:
EuclideanSpace,Positionable,RealLocalizable,RealPositionable,RealRandomAccess<T>,Sampler<T>,Typed<T>
- Direct Known Subclasses:
LinearRealRandomAccessibleStackInterpolator
public class NearestNeighborRealRandomAccessibleStackInterpolator<T> extends AbstractEuclideanSpace implements RealRandomAccess<T>
A nearest neighbor interpolator for stacks ofRealRandomAccessibles.When changing any dimension of the position, except the (n+1)th, this position change is applied to the active slice
RealRandomAccess. When changing the (n+1)th dimension of the position, a new sliceRealRandomAccessbecomes active, is set to the position of the previously active sliceRealRandomAccess. Initially, only aRealRandomAccessfor the first slice is created, other sliceRealRandomAccesses are created on demand but stored for later re-use.
-
-
Field Summary
Fields Modifier and Type Field Description protected intlastSliceIndexprotected double[]positionprotected intsdprotected RealRandomAccess<T>sliceAccessprotected RealRandomAccess<T>[]sliceAccessesprotected intsliceIndexprotected RealRandomAccessible<T>[]slices-
Fields inherited from class net.imglib2.AbstractEuclideanSpace
n
-
-
Constructor Summary
Constructors Modifier Constructor Description NearestNeighborRealRandomAccessibleStackInterpolator(java.util.List<RealRandomAccessible<T>> slices)protectedNearestNeighborRealRandomAccessibleStackInterpolator(NearestNeighborRealRandomAccessibleStackInterpolator<T> a)NearestNeighborRealRandomAccessibleStackInterpolator(RealRandomAccessible<T>[] slices)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbck(int d)Move by -1 in one dimension.NearestNeighborRealRandomAccessibleStackInterpolator<T>copy()voidfwd(int d)Move by 1 in one dimension.Tget()Access the actual T instance providing access to a pixel, sub-pixel or integral region value theSamplerpoints at.doublegetDoublePosition(int d)Return the current position in a given dimension.floatgetFloatPosition(int d)Return the current position in a given dimension.protected RealRandomAccess<T>getOrCreateAccess(int i)protected intgetSliceIndex(double position)TgetType()Get an instance ofT.voidlocalize(double[] position)Write the current position into the passed array.voidlocalize(float[] position)Write the current position into the passed array.voidmove(double[] distance)Move the element relative to its current location using a float[] as distance vector.voidmove(double distance, int d)Move the element in one dimension for some distance.voidmove(float[] distance)Move the element relative to its current location using a float[] as distance vector.voidmove(float distance, int d)Move the element in one dimension for some distance.voidmove(int[] distance)Move the element relative to its current location using an int[] as distance vector.voidmove(int distance, int d)Move the element in one dimension for some distance.voidmove(long[] distance)Move the element relative to its current location using a long[] as distance vector.voidmove(long distance, int d)Move the element in one dimension for some distance.voidmove(Localizable distance)Move the element relative to its current location using anLocalizableas distance vector.voidmove(RealLocalizable distance)Move the element relative to its current location using aRealLocalizableas distance vector.voidsetPosition(double[] position)Set the position of the element.voidsetPosition(double pos, int d)Set the position of the element for one dimension.voidsetPosition(float[] position)Set the position of the element.voidsetPosition(float pos, int d)Set the position of the element for one dimension.voidsetPosition(int[] position)Set the position of the element.voidsetPosition(int pos, int d)Set the position of the element for one dimension.voidsetPosition(long[] position)Set the position of the element.voidsetPosition(long pos, int d)Set the position of the element for one dimension.voidsetPosition(Localizable position)Place the element at the same location as a givenLocalizablevoidsetPosition(RealLocalizable position)Place the element at the same location as a givenRealLocalizableprotected voidsetSlice(int i)protected voidupdateSlice(int i)-
Methods inherited from class net.imglib2.AbstractEuclideanSpace
numDimensions
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.imglib2.EuclideanSpace
numDimensions
-
Methods inherited from interface net.imglib2.RealLocalizable
localize, positionAsDoubleArray, positionAsRealPoint
-
Methods inherited from interface net.imglib2.RealRandomAccess
copyRealRandomAccess, setPositionAndGet, setPositionAndGet, setPositionAndGet
-
-
-
-
Field Detail
-
position
protected final double[] position
-
sd
protected final int sd
-
sliceAccess
protected RealRandomAccess<T> sliceAccess
-
slices
protected final RealRandomAccessible<T>[] slices
-
sliceAccesses
protected final RealRandomAccess<T>[] sliceAccesses
-
sliceIndex
protected int sliceIndex
-
lastSliceIndex
protected final int lastSliceIndex
-
-
Constructor Detail
-
NearestNeighborRealRandomAccessibleStackInterpolator
public NearestNeighborRealRandomAccessibleStackInterpolator(RealRandomAccessible<T>[] slices)
-
NearestNeighborRealRandomAccessibleStackInterpolator
public NearestNeighborRealRandomAccessibleStackInterpolator(java.util.List<RealRandomAccessible<T>> slices)
-
NearestNeighborRealRandomAccessibleStackInterpolator
protected NearestNeighborRealRandomAccessibleStackInterpolator(NearestNeighborRealRandomAccessibleStackInterpolator<T> a)
-
-
Method Detail
-
getSliceIndex
protected int getSliceIndex(double position)
-
getOrCreateAccess
protected RealRandomAccess<T> getOrCreateAccess(int i)
-
setSlice
protected void setSlice(int i)
-
updateSlice
protected void updateSlice(int i)
-
localize
public void localize(float[] position)
Description copied from interface:RealLocalizableWrite the current position into the passed array.- Specified by:
localizein interfaceRealLocalizable- Parameters:
position- receives current position, length must be ≥EuclideanSpace.numDimensions()
-
localize
public void localize(double[] position)
Description copied from interface:RealLocalizableWrite the current position into the passed array.- Specified by:
localizein interfaceRealLocalizable- Parameters:
position- receives current position, length must be ≥EuclideanSpace.numDimensions()
-
getFloatPosition
public float getFloatPosition(int d)
Description copied from interface:RealLocalizableReturn the current position in a given dimension.- Specified by:
getFloatPositionin interfaceRealLocalizable- Parameters:
d- dimension- Returns:
- dimension of current position
-
getDoublePosition
public double getDoublePosition(int d)
Description copied from interface:RealLocalizableReturn the current position in a given dimension.- Specified by:
getDoublePositionin interfaceRealLocalizable- Parameters:
d- dimension- Returns:
- dimension of current position
-
fwd
public void fwd(int d)
Description copied from interface:PositionableMove by 1 in one dimension.- Specified by:
fwdin interfacePositionable- Parameters:
d- dimension
-
bck
public void bck(int d)
Description copied from interface:PositionableMove by -1 in one dimension.- Specified by:
bckin interfacePositionable- Parameters:
d- dimension
-
move
public void move(int distance, int d)Description copied from interface:PositionableMove the element in one dimension for some distance.- Specified by:
movein interfacePositionable- Parameters:
distance- relative offset in dimension dd- dimension
-
move
public void move(long distance, int d)Description copied from interface:PositionableMove the element in one dimension for some distance.- Specified by:
movein interfacePositionable- Parameters:
distance- relative offset in dimension dd- dimension
-
move
public void move(float distance, int d)Description copied from interface:RealPositionableMove the element in one dimension for some distance.- Specified by:
movein interfaceRealPositionable
-
move
public void move(double distance, int d)Description copied from interface:RealPositionableMove the element in one dimension for some distance.- Specified by:
movein interfaceRealPositionable
-
move
public void move(RealLocalizable distance)
Description copied from interface:RealPositionableMove the element relative to its current location using aRealLocalizableas distance vector.- Specified by:
movein interfaceRealPositionable- Parameters:
distance- relative offset,EuclideanSpace.numDimensions()must be ≥EuclideanSpace.numDimensions()
-
move
public void move(Localizable distance)
Description copied from interface:PositionableMove the element relative to its current location using anLocalizableas distance vector.- Specified by:
movein interfacePositionable- Parameters:
distance- relative offset,EuclideanSpace.numDimensions()must be ≥EuclideanSpace.numDimensions()
-
move
public void move(int[] distance)
Description copied from interface:PositionableMove the element relative to its current location using an int[] as distance vector.- Specified by:
movein interfacePositionable- Parameters:
distance- relative offset, length must be ≥EuclideanSpace.numDimensions()
-
move
public void move(long[] distance)
Description copied from interface:PositionableMove the element relative to its current location using a long[] as distance vector.- Specified by:
movein interfacePositionable- Parameters:
distance- relative offset, length must be ≥EuclideanSpace.numDimensions()
-
move
public void move(double[] distance)
Description copied from interface:RealPositionableMove the element relative to its current location using a float[] as distance vector.- Specified by:
movein interfaceRealPositionable- Parameters:
distance- , length must be ≥EuclideanSpace.numDimensions()
-
move
public void move(float[] distance)
Description copied from interface:RealPositionableMove the element relative to its current location using a float[] as distance vector.- Specified by:
movein interfaceRealPositionable- Parameters:
distance- , length must be ≥EuclideanSpace.numDimensions()
-
setPosition
public void setPosition(Localizable position)
Description copied from interface:PositionablePlace the element at the same location as a givenLocalizable- Specified by:
setPositionin interfacePositionable- Parameters:
position- absolute position,EuclideanSpace.numDimensions()must be ≥EuclideanSpace.numDimensions()
-
setPosition
public void setPosition(RealLocalizable position)
Description copied from interface:RealPositionablePlace the element at the same location as a givenRealLocalizable- Specified by:
setPositionin interfaceRealPositionable- Parameters:
position- absolute position,EuclideanSpace.numDimensions()must be ≥EuclideanSpace.numDimensions()
-
setPosition
public void setPosition(int[] position)
Description copied from interface:PositionableSet the position of the element.- Specified by:
setPositionin interfacePositionable- Parameters:
position- absolute position, length must be ≥EuclideanSpace.numDimensions()
-
setPosition
public void setPosition(long[] position)
Description copied from interface:PositionableSet the position of the element.- Specified by:
setPositionin interfacePositionable- Parameters:
position- absolute position, length must be ≥EuclideanSpace.numDimensions()
-
setPosition
public void setPosition(double[] position)
Description copied from interface:RealPositionableSet the position of the element.- Specified by:
setPositionin interfaceRealPositionable- Parameters:
position- absolute position, length must be ≥EuclideanSpace.numDimensions()
-
setPosition
public void setPosition(float[] position)
Description copied from interface:RealPositionableSet the position of the element.- Specified by:
setPositionin interfaceRealPositionable- Parameters:
position- absolute position, length must be ≥EuclideanSpace.numDimensions()
-
setPosition
public void setPosition(int pos, int d)Description copied from interface:PositionableSet the position of the element for one dimension.- Specified by:
setPositionin interfacePositionable- Parameters:
pos- absolute position in dimension dd- dimension
-
setPosition
public void setPosition(long pos, int d)Description copied from interface:PositionableSet the position of the element for one dimension.- Specified by:
setPositionin interfacePositionable- Parameters:
pos- absolute position in dimension dd- dimension
-
setPosition
public void setPosition(float pos, int d)Description copied from interface:RealPositionableSet the position of the element for one dimension.- Specified by:
setPositionin interfaceRealPositionable
-
setPosition
public void setPosition(double pos, int d)Description copied from interface:RealPositionableSet the position of the element for one dimension.- Specified by:
setPositionin interfaceRealPositionable
-
get
public T get()
Description copied from interface:SamplerAccess the actual T instance providing access to a pixel, sub-pixel or integral region value theSamplerpoints at.
-
getType
public T getType()
Description copied from interface:TypedGet an instance ofT.It should not be assumed that the returned
Tinstance is an independent copy. In particular, repeated calls togetType()may return the same instance.
-
copy
public NearestNeighborRealRandomAccessibleStackInterpolator<T> copy()
- Specified by:
copyin interfaceRealRandomAccess<T>- Specified by:
copyin interfaceSampler<T>- Returns:
- - A new
Samplerin the same state accessing the same values. It does NOT copy T, just the state of theSampler. Otherwise use T.copy() if available. Sampler.copy().get() == Sampler.get(), i.e. both hold the same value, not necessarily the same instance (this is the case for anArrayCursorfor example)
-
-