Package net.imglib2.interpolation.stack
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 ofRealRandomAccessibles.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 sliceRealRandomAccesses becomes active, are set to the position of the previously active sliceRealRandomAccesses. Initially, only twoRealRandomAccesses for the first two slice are created, other sliceRealRandomAccesses are created on demand but stored for later re-use.
-
-
Field Summary
Fields Modifier and Type Field Description protected RealRandomAccess<T>sliceAccess2protected Ttmprequired 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 Tvalueprotected doublewprotected doublew1-
Fields inherited from class net.imglib2.interpolation.stack.NearestNeighborRealRandomAccessibleStackInterpolator
lastSliceIndex, position, sd, sliceAccess, sliceAccesses, sliceIndex, slices
-
Fields inherited from class net.imglib2.AbstractEuclideanSpace
n
-
-
Constructor Summary
Constructors Modifier Constructor Description LinearRealRandomAccessibleStackInterpolator(java.util.List<RealRandomAccessible<T>> slices)protectedLinearRealRandomAccessibleStackInterpolator(LinearRealRandomAccessibleStackInterpolator<T> a)LinearRealRandomAccessibleStackInterpolator(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.LinearRealRandomAccessibleStackInterpolator<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.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 net.imglib2.interpolation.stack.NearestNeighborRealRandomAccessibleStackInterpolator
getDoublePosition, getFloatPosition, getOrCreateAccess, getType, localize, localize, move, move, move
-
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
-
sliceAccess2
protected RealRandomAccess<T extends NumericType<T>> sliceAccess2
-
value
protected final T extends NumericType<T> value
-
tmp
protected final T extends NumericType<T> 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 Detail
-
LinearRealRandomAccessibleStackInterpolator
public LinearRealRandomAccessibleStackInterpolator(RealRandomAccessible<T>[] slices)
-
LinearRealRandomAccessibleStackInterpolator
public LinearRealRandomAccessibleStackInterpolator(java.util.List<RealRandomAccessible<T>> slices)
-
LinearRealRandomAccessibleStackInterpolator
protected LinearRealRandomAccessibleStackInterpolator(LinearRealRandomAccessibleStackInterpolator<T> a)
-
-
Method Detail
-
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>>
-
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- Overrides:
movein classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>- 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- 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
public void setPosition(Localizable position)
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
public void setPosition(RealLocalizable position)
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>>
-
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>>
-
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.- Specified by:
getin interfaceSampler<T extends NumericType<T>>- Overrides:
getin classNearestNeighborRealRandomAccessibleStackInterpolator<T extends NumericType<T>>
-
copy
public LinearRealRandomAccessibleStackInterpolator<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)
-
-