Class LinearRealRandomAccessibleStackInterpolator<T extends NumericType<T>>
java.lang.Object
net.imglib2.AbstractEuclideanSpace
net.imglib2.interpolation.stack.NearestNeighborRealRandomAccessibleStackInterpolator<T>
net.imglib2.interpolation.stack.LinearRealRandomAccessibleStackInterpolator<T>
- Type Parameters:
T- the pixel type
- All Implemented Interfaces:
EuclideanSpace, Positionable, RealLocalizable, RealPositionable, RealRandomAccess<T>, Sampler<T>, Typed<T>
public class LinearRealRandomAccessibleStackInterpolator<T extends NumericType<T>>
extends NearestNeighborRealRandomAccessibleStackInterpolator<T>
A linear interpolator for stacks of
RealRandomAccessibles.
When changing any dimension of the position, except the (n+1)th,
this position change is applied to the two active slice
RealRandomAccesses. When changing the (n+1)th dimension of
the position, two new slice RealRandomAccesses becomes active, are
set to the position of the previously active slice
RealRandomAccesses. Initially, only two RealRandomAccesses
for the first two slice are created, other slice RealRandomAccesses
are created on demand but stored for later re-use.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected RealRandomAccess<T> protected final Trequired because (a - b) in (a - b) * w + b cannot become negative value in unsigned types and NumericType is not Comparable so we cannot have decide which of the two options (a - b) * w + b or (b - a) * w1 + a could workprotected final Tprotected doubleprotected doubleFields inherited from class NearestNeighborRealRandomAccessibleStackInterpolator
lastSliceIndex, position, sd, sliceAccess, sliceAccesses, sliceIndex, slicesFields inherited from class AbstractEuclideanSpace
n -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected -
Method Summary
Modifier and TypeMethodDescriptionvoidbck(int d) Move by -1 in one dimension.copy()voidfwd(int d) Move by 1 in one dimension.get()Access the actual T instance providing access to a pixel, sub-pixel or integral region value theSamplerpoints at.protected intgetSliceIndex(double position) 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(int[] distance) Move the element relative to its current location using an int[] as distance vector.voidmove(long[] distance) Move the element relative to its current location using a long[] as distance vector.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) protected voidupdateW()Methods inherited from class NearestNeighborRealRandomAccessibleStackInterpolator
getDoublePosition, getFloatPosition, getOrCreateAccess, getType, localize, localize, move, move, moveMethods inherited from class AbstractEuclideanSpace
numDimensionsMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface EuclideanSpace
numDimensionsMethods inherited from interface RealLocalizable
localize, positionAsDoubleArray, positionAsRealPointMethods inherited from interface RealRandomAccess
copyRealRandomAccess, setPositionAndGet, setPositionAndGet, setPositionAndGet
-
Field Details
-
sliceAccess2
-
value
-
tmp
required because (a - b) in (a - b) * w + b cannot become negative value in unsigned types and NumericType is not Comparable so we cannot have decide which of the two options (a - b) * w + b or (b - a) * w1 + a could work -
w
protected double w -
w1
protected double w1
-
-
Constructor Details
-
LinearRealRandomAccessibleStackInterpolator
-
LinearRealRandomAccessibleStackInterpolator
-
LinearRealRandomAccessibleStackInterpolator
protected LinearRealRandomAccessibleStackInterpolator(LinearRealRandomAccessibleStackInterpolator<T> a)
-
-
Method Details
-
getSliceIndex
protected int getSliceIndex(double position) - Overrides:
getSliceIndexin classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>
-
setSlice
protected void setSlice(int i) - Overrides:
setSlicein classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>
-
updateSlice
protected void updateSlice(int i) - Overrides:
updateSlicein classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>
-
updateW
protected void updateW() -
fwd
public void fwd(int d) Description copied from interface:PositionableMove by 1 in one dimension.- Specified by:
fwdin interfacePositionable- Overrides:
fwdin classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>- Parameters:
d- dimension
-
bck
public void bck(int d) Description copied from interface:PositionableMove by -1 in one dimension.- Specified by:
bckin interfacePositionable- Overrides:
bckin classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>- Parameters:
d- dimension
-
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- Overrides:
movein classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>- Parameters:
distance-d-
-
move
Description copied from interface:RealPositionableMove the element relative to its current location using aRealLocalizableas distance vector.- Specified by:
movein interfaceRealPositionable- Overrides:
movein classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>- Parameters:
distance- relative offset,EuclideanSpace.numDimensions()must be ≥EuclideanSpace.numDimensions()
-
move
Description copied from interface:PositionableMove the element relative to its current location using anLocalizableas distance vector.- Specified by:
movein interfacePositionable- Overrides:
movein classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>- 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- Overrides:
movein classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>- 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- Overrides:
movein classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>- 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- Overrides:
movein classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>- 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- Overrides:
movein classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>- Parameters:
distance- , length must be ≥EuclideanSpace.numDimensions()
-
setPosition
Description copied from interface:PositionablePlace the element at the same location as a givenLocalizable- Specified by:
setPositionin interfacePositionable- Overrides:
setPositionin classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>- Parameters:
position- absolute position,EuclideanSpace.numDimensions()must be ≥EuclideanSpace.numDimensions()
-
setPosition
Description copied from interface:RealPositionablePlace the element at the same location as a givenRealLocalizable- Specified by:
setPositionin interfaceRealPositionable- Overrides:
setPositionin classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>- 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- Overrides:
setPositionin classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>- 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- Overrides:
setPositionin classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>- 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- Overrides:
setPositionin classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>- 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- Overrides:
setPositionin classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>- 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- Overrides:
setPositionin classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>- 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- Overrides:
setPositionin classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>- 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- Overrides:
setPositionin classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>- Parameters:
pos-d-
-
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- Overrides:
setPositionin classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>- Parameters:
pos-d-
-
get
Description copied from interface:SamplerAccess the actual T instance providing access to a pixel, sub-pixel or integral region value theSamplerpoints at.- Specified by:
getin interfaceSampler<T extends NumericType<T>>- Overrides:
getin classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>
-
copy
- Specified by:
copyin interfaceRealRandomAccess<T extends NumericType<T>>- Specified by:
copyin interfaceSampler<T extends NumericType<T>>- Overrides:
copyin classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<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)
-