public class PeriodicLineShape extends Object implements Shape
PeriodicLineNeighborhoods, that iterate
 over what is termed "Periodic lines", and is best explained in Ronald Jones
 and Pierre Soilles publication:
 Jones and Soilles. Periodic lines: Definition, cascades, and application to granulometries. Pattern Recognition Letters (1996) vol. 17 (10) pp. 1057-1063
| Modifier and Type | Class and Description | 
|---|---|
static class  | 
PeriodicLineShape.NeighborhoodsAccessible<T>  | 
static class  | 
PeriodicLineShape.NeighborhoodsIterableInterval<T>  | 
| Constructor and Description | 
|---|
PeriodicLineShape(long span,
                 int[] increments)
Creates a new periodic line shape, that will iterate over
  
2 × span + 1 pixels as follow: | 
public PeriodicLineShape(long span,
                         int[] increments)
2 × span + 1 pixels as follow:
 
 position - span x increments, ... position - 2 × increments, position - increments, position, position + increments, position + 2 × increments, ... position + span x increments
span - the span of the neighborhood, so that it will iterate over
            2 × span + 1 pixels. Must be positive.increments - the values by which each element of the position vector is to
            be incremented when iterating.public <T> PeriodicLineShape.NeighborhoodsIterableInterval<T> neighborhoods(RandomAccessibleInterval<T> source)
ShapeIterableInterval that contains all Neighborhoods of the source image.
 
 A Cursor on the resulting accessible can be used to access the
 neighborhoods. As usual, when the cursor is moved, a
 neighborhood obtained previously from the cursor
 should be considered invalid.
 
 The neighborhoods that are obtained from the
 resulting accessible are unsafe in the following sense: Every time,
 a Cursor is requested (using IterableInterval.cursor() etc)
 the same Cursor instance is re-used. If you require to have more
 than one Cursor into the current neighborhood at a given time you
 have several options:
 
Sampler.copy() the cursor you obtained using
 IterableInterval.cursor().
 IterableInterval<Neighborhood>.
 Shape.neighborhoodsSafe(RandomAccessibleInterval) which
 returns a new IterableInterval.cursor() every time (but therefore is
 not recommended if you want to use enhanced for loops).
 neighborhoods in interface Shapesource - source image.IterableInterval that contains all
         Neighborhoods of the source image.public <T> PeriodicLineShape.NeighborhoodsAccessible<T> neighborhoodsRandomAccessible(RandomAccessible<T> source)
ShapeRandomAccessibleInterval that contains all
 Neighborhoods of the source image.
 
 A RandomAccess on the resulting accessible can be used to access
 the neighborhoods. As usual, when the access is
 moved, a neighborhood obtained previously from the
 access should be considered invalid.
 
 The neighborhoods that are obtained from the
 resulting accessible are unsafe in the following sense: Every time,
 a Cursor is requested (using IterableInterval.cursor() etc)
 the same Cursor instance is re-used. If you require to have more
 than one Cursor into the current neighborhood at a given time you
 have several options:
 
Sampler.copy() the cursor you obtained using
 IterableInterval.cursor().
 RandomAccesses, i.e.,
 accesses on the
 RandomAccessibleInterval<Neighborhood>.
 Shape.neighborhoodsRandomAccessibleSafe(net.imglib2.RandomAccessible<T>) which returns a new
 IterableInterval.cursor() every time (but therefore is not
 recommended if you want to use enhanced for loops).
 neighborhoodsRandomAccessible in interface Shapesource - source image.RandomAccessibleInterval that contains all
         Neighborhoods of the source image.public <T> IterableInterval<Neighborhood<T>> neighborhoodsSafe(RandomAccessibleInterval<T> source)
ShapeIterableInterval that contains all Neighborhoods of the source image.
 
 A Cursor on the resulting accessible can be used to access the
 neighborhoods. As usual, when the cursor is moved, a
 neighborhood obtained previously from the cursor
 should be considered invalid.
 
 Every time, a Cursor is requested from a Neighborhood
 (where the neighborhood in turn is obtained from a cursor on the
 IterableInterval returned by this method) a new Cursor instance
 is created. If you want to use enhanced for loops on the
 neighborhoods, consider using
 Shape.neighborhoods(RandomAccessibleInterval) which re-uses the same
 instance every time (but therefore has to be used carefully).
 
neighborhoodsSafe in interface Shapesource - source image.IterableInterval that contains all
         Neighborhoods of the source image.public <T> PeriodicLineShape.NeighborhoodsAccessible<T> neighborhoodsRandomAccessibleSafe(RandomAccessible<T> source)
ShapeRandomAccessibleInterval that contains all
 Neighborhoods of the source image.
 
 A RandomAccess on the resulting accessible can be used to access
 the neighborhoods. As usual, when the access is
 moved, a neighborhood obtained previously from the
 access should be considered invalid.
 
 Every time, a Cursor is requested from a Neighborhood
 (where the neighborhood in turn is obtained from a cursor on the
 IterableInterval returned by this method) a new Cursor instance
 is created. If you want to use enhanced for loops on the
 neighborhoods, consider using
 Shape.neighborhoods(RandomAccessibleInterval) which re-uses the same
 instance every time (but therefore has to be used carefully).
 
neighborhoodsRandomAccessibleSafe in interface Shapesource - source image.RandomAccessibleInterval that contains all
         Neighborhoods of the source image.public long getSpan()
public int[] getIncrements()
public Interval getStructuringElementBoundingBox(int numDimensions)
ShapeShape with numDimensions
 dimensions.
 
 Providing numDimensions is required since the input from which
 neighborhoods are generated is not known yet. The
 bounding box is described by an Interval with the center of the
 bounding box located at zero.
 
 The values of this bounding box should only be used to determine the extent
 of the Shape, ignoring the absolute min
 and max values.
 
getStructuringElementBoundingBox in interface ShapenumDimensions - dimensions of the ShapeInterval that describes the bounding box of a
         ShapeCopyright © 2015–2022 ImgLib2. All rights reserved.