@@ -281,4 +297,39 @@ Jean-Yves Tinevez and Michael Zinsmaier.
test
+
+
+
+
+
+ maven-compiler-plugin
+
+
+
+ org.scijava
+ scijava-ops-indexer
+ 1.0.0
+
+
+ true
+
+ -Ascijava.ops.parse=${scijava.parse.ops}
+ -Ascijava.ops.opVersion=${project.version}
+
+
+
+
+ maven-javadoc-plugin
+
+
+
+ implNote
+ a
+ Implementation Note:
+
+
+
+
+
+
diff --git a/src/main/java/net/imglib2/algorithm/binary/Thresholder.java b/src/main/java/net/imglib2/algorithm/binary/Thresholder.java
index 2e14f7ee6..2bee0ba57 100644
--- a/src/main/java/net/imglib2/algorithm/binary/Thresholder.java
+++ b/src/main/java/net/imglib2/algorithm/binary/Thresholder.java
@@ -70,6 +70,7 @@ public class Thresholder
* the number of threads to use for thresholding.
* @return a new {@link Img} of type {@link BitType} and of same dimension
* that the source image.
+ * @implNote op name='threshold.apply'
*/
public static final < T extends Type< T > & Comparable< T >> Img< BitType > threshold( final Img< T > source, final T threshold, final boolean above, final int numThreads )
{
diff --git a/src/main/java/net/imglib2/algorithm/componenttree/mser/MserTree.java b/src/main/java/net/imglib2/algorithm/componenttree/mser/MserTree.java
index b14bb3242..f1d24aed8 100644
--- a/src/main/java/net/imglib2/algorithm/componenttree/mser/MserTree.java
+++ b/src/main/java/net/imglib2/algorithm/componenttree/mser/MserTree.java
@@ -105,7 +105,8 @@ public final class MserTree< T extends Type< T > > implements ComponentForest< M
* {@link #buildMserTree(RandomAccessibleInterval, RealType, long, long, double, double, ImgFactory, boolean)}
* using an {@link ArrayImgFactory} or {@link CellImgFactory} depending on
* input image size.
- *
+ *
+ * @implNote op name='create.mserTree',type=Function
* @param input
* the input image.
* @param delta
@@ -133,7 +134,8 @@ public static < T extends RealType< T > > MserTree< T > buildMserTree( final Ran
* {@link #buildMserTree(RandomAccessibleInterval, RealType, long, long, double, double, ImgFactory, boolean)}
* using an {@link ArrayImgFactory} or {@link CellImgFactory} depending on
* input image size.
- *
+ *
+ * @implNote op name='create.mserTree',type=Function
* @param input
* the input image.
* @param delta
@@ -159,7 +161,8 @@ public static < T extends RealType< T > > MserTree< T > buildMserTree( final Ran
/**
* Build a MSER tree from an input image.
- *
+ *
+ * @implNote op name='create.mserTree',type=Function
* @param input
* the input image.
* @param delta
@@ -198,7 +201,8 @@ public static < T extends RealType< T > > MserTree< T > buildMserTree( final Ran
* {@link #buildMserTree(RandomAccessibleInterval, ComputeDelta, long, long, double, double, ImgFactory, Type, Comparator)}
* using an {@link ArrayImgFactory} or {@link CellImgFactory} depending on
* input image size.
- *
+ *
+ * @implNote op name='create.mserTree',type=Function
* @param input
* the input image.
* @param computeDelta
@@ -226,7 +230,8 @@ public static < T extends Type< T > > MserTree< T > buildMserTree( final RandomA
/**
* Build a MSER tree from an input image.
- *
+ *
+ * @implNote op name='create.mserTree',type=Function
* @param input
* the input image.
* @param computeDelta
diff --git a/src/main/java/net/imglib2/algorithm/componenttree/pixellist/PixelListComponentTree.java b/src/main/java/net/imglib2/algorithm/componenttree/pixellist/PixelListComponentTree.java
index 797d35e4a..5b09c4d7a 100644
--- a/src/main/java/net/imglib2/algorithm/componenttree/pixellist/PixelListComponentTree.java
+++ b/src/main/java/net/imglib2/algorithm/componenttree/pixellist/PixelListComponentTree.java
@@ -74,6 +74,7 @@ public final class PixelListComponentTree< T extends Type< T > > implements Comp
* using an {@link ArrayImgFactory} or {@link CellImgFactory} depending on
* input image size.
*
+ * @implNote op name='create.pixelListComponentTree',type=Function
* @param input
* the input image.
* @param type
@@ -92,6 +93,7 @@ public static < T extends RealType< T > > PixelListComponentTree< T > buildCompo
/**
* Build a component tree from an input image.
*
+ * @implNote op name='create.pixelListComponentTree',type=Function
* @param input
* the input image.
* @param type
@@ -120,6 +122,7 @@ public static < T extends RealType< T > > PixelListComponentTree< T > buildCompo
* using an {@link ArrayImgFactory} or {@link CellImgFactory} depending on
* input image size.
*
+ * @implNote op name='create.pixelListComponentTree',type=Function
* @param input
* the input image.
* @param maxValue
@@ -138,6 +141,7 @@ public static < T extends Type< T > > PixelListComponentTree< T > buildComponent
/**
* Build a component tree from an input image.
*
+ * @implNote op name='create.pixelListComponentTree',type=Function
* @param input
* the input image.
* @param maxValue
diff --git a/src/main/java/net/imglib2/algorithm/convolution/fast_gauss/FastGauss.java b/src/main/java/net/imglib2/algorithm/convolution/fast_gauss/FastGauss.java
index c16591780..dac8369a8 100644
--- a/src/main/java/net/imglib2/algorithm/convolution/fast_gauss/FastGauss.java
+++ b/src/main/java/net/imglib2/algorithm/convolution/fast_gauss/FastGauss.java
@@ -88,11 +88,23 @@ public class FastGauss
return new LineConvolution<>( new FastGaussConvolverRealType( sigma ), direction );
}
+ /**
+ * @param sigmas the standard deviations of the Gaussian blur (in each dimension)
+ * @param input the input data to blur
+ * @param output the preallocated output buffer
+ * @implNote op name='filter.gauss', type=Computer
+ */
public static void convolve( final double[] sigmas, final RandomAccessible< ? extends RealType< ? > > input, final RandomAccessibleInterval< ? extends RealType< ? > > output )
{
convolution( sigmas ).process( input, output );
}
+ /**
+ * @param sigma the standard deviation of the Gaussian blur (in all dimensions)
+ * @param input the input data to blur
+ * @param output the preallocated output buffer
+ * @implNote op name='filter.gauss', type=Computer
+ */
public static void convolve( final double sigma, final RandomAccessible< ? extends RealType< ? > > input, final RandomAccessibleInterval< ? extends RealType< ? > > output )
{
convolution( sigma ).process( input, output );
diff --git a/src/main/java/net/imglib2/algorithm/convolution/kernel/Kernel1D.java b/src/main/java/net/imglib2/algorithm/convolution/kernel/Kernel1D.java
index b3ae1c038..df0960e24 100644
--- a/src/main/java/net/imglib2/algorithm/convolution/kernel/Kernel1D.java
+++ b/src/main/java/net/imglib2/algorithm/convolution/kernel/Kernel1D.java
@@ -56,6 +56,8 @@ public class Kernel1D
* @param halfKernel
* the upper half (starting at the center pixel) of the symmetric
* convolution kernel.
+ * @return a {@link Kernel1D} used for one dimensional convolutions
+ * @implNote op name='create.kernel1DSymmetric'
*/
public static Kernel1D symmetric( final double... halfKernel )
{
@@ -68,6 +70,9 @@ public static Kernel1D symmetric( final double... halfKernel )
/**
* Similar to {@link #symmetric(double[])} but creates an array of
* one-dimensional convolution kernels.
+ * @param halfKernels the upper halves (starting at the center pixel) of the symmetric convolution kernels
+ * @return an array of {@link Kernel1D}s used for one dimensional convolutions
+ * @implNote op name='create.kernel1DSymmetric'
*/
public static Kernel1D[] symmetric( final double[][] halfKernels )
{
@@ -82,6 +87,8 @@ public static Kernel1D[] symmetric( final double[][] halfKernels )
* @param originIndex
* the index of the array element which is the origin of the
* kernel
+ * @return an asymmetric {@link Kernel1D} used for one dimensional convolutions
+ * @implNote op name='create.kernel1DAsymmetric'
*/
public static Kernel1D asymmetric( final double[] fullKernel, final int originIndex )
{
@@ -94,6 +101,9 @@ public static Kernel1D asymmetric( final double[] fullKernel, final int originIn
/**
* Creates a one-dimensional asymmetric convolution kernel, where the origin
* of the kernel is in the middle.
+ * @param kernel the raw data of the symmetric convolution kernel
+ * @return a {@link Kernel1D} used for one dimensional convolutions
+ * @implNote op name='create.kernel1DCentralAsymmetric'
*/
public static Kernel1D centralAsymmetric( final double... kernel )
{
@@ -103,6 +113,13 @@ public static Kernel1D centralAsymmetric( final double... kernel )
/**
* Similar to {@link #asymmetric(double[], int)} but creates an array of
* one-dimensional convolution kernels.
+ * @param fullKernels
+ * arrays containing the values of each kernel
+ * @param originIndices
+ * the indices of the array elements at the origin of each
+ * kernel
+ * @return an array of {@link Kernel1D}s used for one dimensional convolutions
+ * @implNote op name='create.kernel1DAsymmetric'
*/
public static Kernel1D[] asymmetric( final double[][] fullKernels, final int[] originIndices )
{
@@ -113,6 +130,9 @@ public static Kernel1D[] asymmetric( final double[][] fullKernels, final int[] o
/**
* Similar to {@link #centralAsymmetric(double...)} but creates an array of
* one-dimensional convolution kernels.
+ * @param kernels the upper halves (starting at the center pixel) of the symmetric convolution kernels
+ * @return an array of {@link Kernel1D}s used for one dimensional convolutions
+ * @implNote op name='create.kernel1DCentralAsymmetric'
*/
public static Kernel1D[] centralAsymmetric( final double[][] kernels )
{
diff --git a/src/main/java/net/imglib2/algorithm/convolution/kernel/SeparableKernelConvolution.java b/src/main/java/net/imglib2/algorithm/convolution/kernel/SeparableKernelConvolution.java
index 90bd850e7..9da6788f9 100644
--- a/src/main/java/net/imglib2/algorithm/convolution/kernel/SeparableKernelConvolution.java
+++ b/src/main/java/net/imglib2/algorithm/convolution/kernel/SeparableKernelConvolution.java
@@ -114,6 +114,7 @@ public class SeparableKernelConvolution
* the required source interval.
* @param target
* target image.
+ * @implNote op name='filter.convolve', type=Computer
*/
public static void convolve( final Kernel1D[] kernels,
final RandomAccessible< ? extends NumericType< ? > > source,
diff --git a/src/main/java/net/imglib2/algorithm/dog/DifferenceOfGaussian.java b/src/main/java/net/imglib2/algorithm/dog/DifferenceOfGaussian.java
index ec163a7d9..eb033362f 100644
--- a/src/main/java/net/imglib2/algorithm/dog/DifferenceOfGaussian.java
+++ b/src/main/java/net/imglib2/algorithm/dog/DifferenceOfGaussian.java
@@ -60,6 +60,44 @@
*/
public class DifferenceOfGaussian
{
+ /**
+ * Compute the difference of Gaussian for the input. Input convolved with
+ * Gaussian of sigmaSmaller is subtracted from input convolved with Gaussian
+ * of sigmaLarger (where {@code sigmaLarger > sigmaSmaller}).
+ *
+ * Creates an appropriate temporary image and calls
+ * {@link #DoG(double[], double[], RandomAccessible, RandomAccessible, RandomAccessibleInterval, ExecutorService)}
+ * .
+ *
+ * This method differs from
+ * {@link #DoG(double[], double[], RandomAccessible, RandomAccessibleInterval, ExecutorService)}
+ * only in that its parameter order is tailored to an Op. The output comes
+ * last, and the primary input (the input image) comes first.
+ *
+ * @implNote op name="filter.dog", type=Computer
+ * @param input
+ * the input image extended to infinity (or at least covering the
+ * same interval as the dog result image, plus borders for
+ * convolution).
+ * @param sigmaSmaller
+ * stddev (in every dimension) of smaller Gaussian.
+ * @param sigmaLarger
+ * stddev (in every dimension) of larger Gaussian.
+ * @param service
+ * service providing threads for multi-threading
+ * @param dog
+ * the Difference-of-Gaussian result image.
+ */
+ public static < I extends NumericType< I >, T extends NumericType< T > & NativeType< T > > void DoG(
+ final RandomAccessible< I > input,
+ final double[] sigmaSmaller,
+ final double[] sigmaLarger,
+ final ExecutorService service,
+ final RandomAccessibleInterval< T > dog)
+ {
+ DoG( sigmaSmaller, sigmaLarger, input, dog, service );
+ }
+
/**
* Compute the difference of Gaussian for the input. Input convolved with
* Gaussian of sigmaSmaller is subtracted from input convolved with Gaussian
@@ -97,6 +135,45 @@ public static < I extends NumericType< I >, T extends NumericType< T > & NativeT
DoG( sigmaSmaller, sigmaLarger, input, Views.translate( g1, translation ), dog, service );
}
+ /**
+ * Compute the difference of Gaussian for the input. Input convolved with
+ * Gaussian of sigmaSmaller is subtracted from input convolved with Gaussian
+ * of sigmaLarger (where sigmaLarger > sigmaSmaller).
+ *
+ * This method differs from
+ * {@link #DoG(double[], double[], RandomAccessible, RandomAccessible, RandomAccessibleInterval, ExecutorService)}
+ * only in that its parameter order is tailored to an Op. The output comes
+ * last, and the primary input (the input image) comes first.
+ *
+ *
+ * @implNote op name="filter.dog", type=Computer
+ * @param input
+ * the input image extended to infinity (or at least covering the
+ * same interval as the dog result image, plus borders for
+ * convolution).
+ * @param sigmaSmaller
+ * stddev (in every dimension) of smaller Gaussian.
+ * @param sigmaLarger
+ * stddev (in every dimension) of larger Gaussian.
+ * @param tmp
+ * temporary image, must at least cover the same interval as the
+ * dog result image.
+ * @param service
+ * how many threads to use for the computation.
+ * @param dog
+ * the Difference-of-Gaussian result image.
+ */
+ public static < I extends NumericType< I >, T extends NumericType< T > & NativeType< T > > void DoG(
+ final RandomAccessible< I > input,
+ final double[] sigmaSmaller,
+ final double[] sigmaLarger,
+ final RandomAccessible< T > tmp,
+ final ExecutorService service,
+ final RandomAccessibleInterval< T > dog)
+ {
+ DoG(sigmaSmaller, sigmaLarger, input, tmp, dog, service);
+ }
+
/**
* Compute the difference of Gaussian for the input. Input convolved with
* Gaussian of sigmaSmaller is subtracted from input convolved with Gaussian
diff --git a/src/main/java/net/imglib2/algorithm/edge/SubpixelEdgelDetection.java b/src/main/java/net/imglib2/algorithm/edge/SubpixelEdgelDetection.java
index db83aaf5f..e48e5a1b6 100644
--- a/src/main/java/net/imglib2/algorithm/edge/SubpixelEdgelDetection.java
+++ b/src/main/java/net/imglib2/algorithm/edge/SubpixelEdgelDetection.java
@@ -73,7 +73,8 @@ public class SubpixelEdgelDetection
*
* Note: The input image type must be a signed type! Otherwise gradient
* computation will not work.
- *
+ *
+ * @implNote op name='features.subpixelEdgels', type=Function
* @param input
* input image
* @param factory
diff --git a/src/main/java/net/imglib2/algorithm/fill/FloodFill.java b/src/main/java/net/imglib2/algorithm/fill/FloodFill.java
index 56415286e..7fbacb893 100644
--- a/src/main/java/net/imglib2/algorithm/fill/FloodFill.java
+++ b/src/main/java/net/imglib2/algorithm/fill/FloodFill.java
@@ -90,6 +90,7 @@ public class FloodFill
* input pixel type
* @param
* fill label type
+ * @implNote op name='morphology.floodFill', type=Computer2
*/
public static < T extends Type< T >, U extends Type< U > > void fill(
final RandomAccessible< T > source,
@@ -138,6 +139,7 @@ public static < T extends Type< T >, U extends Type< U > > void fill(
* input pixel type
* @param
* fill label type
+ * @implNote op name='morphology.floodFill', type=Computer2
*/
public static < T, U extends Type< U > > void fill(
final RandomAccessible< T > source,
@@ -180,6 +182,7 @@ public static < T, U extends Type< U > > void fill(
* input pixel type
* @param
* fill label type
+ * @implNote op name='morphology.floodFill', type=Computer2
*/
public static < T, U > void fill(
final RandomAccessible< T > source,
diff --git a/src/main/java/net/imglib2/algorithm/gauss3/Gauss3.java b/src/main/java/net/imglib2/algorithm/gauss3/Gauss3.java
index 952d83d5d..a06b2ba89 100644
--- a/src/main/java/net/imglib2/algorithm/gauss3/Gauss3.java
+++ b/src/main/java/net/imglib2/algorithm/gauss3/Gauss3.java
@@ -74,6 +74,7 @@ public final class Gauss3
* {@link Parallelization} context. (By default, it will use the
* {@link ForkJoinPool#commonPool() common ForkJoinPool})
*
+ * @implNote op name='filter.gauss', type=Computer
* @param sigma
* standard deviation of isotropic Gaussian.
* @param source
@@ -116,6 +117,7 @@ public static < S extends NumericType< S >, T extends NumericType< T > > void ga
* {@link Parallelization} context. (By default, it will use the
* {@link ForkJoinPool#commonPool() common ForkJoinPool})
*
+ * @implNote op name='filter.gauss', type=Computer
* @param sigma
* standard deviation in every dimension.
* @param source
diff --git a/src/main/java/net/imglib2/algorithm/gradient/PartialDerivative.java b/src/main/java/net/imglib2/algorithm/gradient/PartialDerivative.java
index 343ea5da5..fbfac58ab 100644
--- a/src/main/java/net/imglib2/algorithm/gradient/PartialDerivative.java
+++ b/src/main/java/net/imglib2/algorithm/gradient/PartialDerivative.java
@@ -107,6 +107,7 @@ public static < T extends NumericType< T > > void gradientCentralDifference2( fi
* @param es
* {@link ExecutorService} providing workers for gradient
* computation. Service is managed (created, shutdown) by caller.
+ * @implNote op name='filter.partialDerivative, filter.gradientCentralDifference', type=Computer2, priority='-1000.'
*/
public static < T extends NumericType< T > > void gradientCentralDifferenceParallel(
final RandomAccessible< T > source,
@@ -177,6 +178,7 @@ public static < T extends NumericType< T > > void gradientCentralDifferenceParal
* output image
* @param dimension
* along which dimension the partial derivatives are computed
+ * @implNote op name='filter.partialDerivative, filter.gradientCentralDifference', type=Computer2, priority='-1000.'
*/
public static < T extends NumericType< T > > void gradientCentralDifference( final RandomAccessible< T > source,
final RandomAccessibleInterval< T > result, final int dimension )
@@ -200,6 +202,7 @@ public static < T extends NumericType< T > > void gradientCentralDifference( fin
* the gradient image plus a one pixel border in dimension.
* @param result output image
* @param dimension along which dimension the partial derivatives are computed
+ * @implNote op name='filter.gradientBackwardDifference', type=Computer2
*/
public static < T extends NumericType< T > > void gradientBackwardDifference( final RandomAccessible< T > source,
final RandomAccessibleInterval< T > result, final int dimension )
@@ -222,6 +225,7 @@ public static < T extends NumericType< T > > void gradientBackwardDifference( fi
* the gradient image plus a one pixel border in dimension.
* @param result output image
* @param dimension along which dimension the partial derivatives are computed
+ * @implNote op name='filter.gradientForwardDifference', type=Computer2
*/
public static < T extends NumericType< T > > void gradientForwardDifference( final RandomAccessible< T > source,
final RandomAccessibleInterval< T > result, final int dimension )
diff --git a/src/main/java/net/imglib2/algorithm/kdtree/ConvexPolytope.java b/src/main/java/net/imglib2/algorithm/kdtree/ConvexPolytope.java
index d8cb0b4f8..9dc11643e 100644
--- a/src/main/java/net/imglib2/algorithm/kdtree/ConvexPolytope.java
+++ b/src/main/java/net/imglib2/algorithm/kdtree/ConvexPolytope.java
@@ -65,6 +65,7 @@ public ConvexPolytope( final HyperPlane... hyperplanes )
/**
* Apply an {@link AffineGet affine transformation} to a {@link HyperPlane}.
*
+ * @implNote op name='transform.affine', type=Function
* @param polytope
* a polytope.
* @param transform
diff --git a/src/main/java/net/imglib2/algorithm/kdtree/HyperPlane.java b/src/main/java/net/imglib2/algorithm/kdtree/HyperPlane.java
index d994762ba..8aef5aece 100644
--- a/src/main/java/net/imglib2/algorithm/kdtree/HyperPlane.java
+++ b/src/main/java/net/imglib2/algorithm/kdtree/HyperPlane.java
@@ -74,6 +74,7 @@ public double getDistance()
/**
* Apply an {@link AffineGet affine transformation} to a {@link HyperPlane}.
*
+ * @implNote op name='transform.affine', type=Function
* @param plane
* a plane.
* @param transform
diff --git a/src/main/java/net/imglib2/algorithm/labeling/ConnectedComponentAnalysis.java b/src/main/java/net/imglib2/algorithm/labeling/ConnectedComponentAnalysis.java
index c98339cfd..0a08f7bd6 100644
--- a/src/main/java/net/imglib2/algorithm/labeling/ConnectedComponentAnalysis.java
+++ b/src/main/java/net/imglib2/algorithm/labeling/ConnectedComponentAnalysis.java
@@ -117,6 +117,7 @@ public static < T > ToLongBiFunction< Localizable, T > idFromIntervalIndexer( fi
* generalization for higher dimenions over a binary mask. {@code mask} and
* {@code labeling} are expected to have equal min and max.
*
+ * @implNote op name='labeling.cca', type=Computer
* @param mask
* Boolean mask to distinguish foreground ({@code true}) from
* background ({@code false}).
@@ -154,6 +155,7 @@ public static < B extends BooleanType< B >, L extends IntegerType< L > > void co
* ({@link DiamondShape}), 8-neighborhood
* ({@link RectangleNeighborhood}) and their generalisations for
* higher dimensions.
+ * @implNote op name='labeling.cca', type=Computer2
*/
public static < B extends BooleanType< B >, L extends IntegerType< L > > void connectedComponents(
final RandomAccessibleInterval< B > mask,
@@ -200,6 +202,7 @@ public static < B extends BooleanType< B >, L extends IntegerType< L > > void co
* @param idForSet
* Create id for a set from the root id of a set. Multiple calls
* with the same argument should always return the same result.
+ * @implNote op name='labeling.cca', type=Computer2
*/
public static < B extends BooleanType< B >, L extends IntegerType< L > > void connectedComponents(
final RandomAccessibleInterval< B > mask,
diff --git a/src/main/java/net/imglib2/algorithm/labeling/ConnectedComponents.java b/src/main/java/net/imglib2/algorithm/labeling/ConnectedComponents.java
index c578e21eb..d6873f8b3 100644
--- a/src/main/java/net/imglib2/algorithm/labeling/ConnectedComponents.java
+++ b/src/main/java/net/imglib2/algorithm/labeling/ConnectedComponents.java
@@ -99,6 +99,7 @@ public CollectNeighborLabelsFactory getFactory()
* @param se
* structuring element to use. 8-connected or 4-connected
* (respectively n-dimensional analog)
+ * @implNote op name='labeling.cca', type=Computer2
*/
public static < T extends IntegerType< T >, L, I extends IntegerType< I > > void labelAllConnectedComponents(
final RandomAccessible< T > input,
@@ -132,6 +133,7 @@ public static < T extends IntegerType< T >, L, I extends IntegerType< I > > void
* (respectively n-dimensional analog)
* @param service
* service providing threads for multi-threading
+ * @implNote op name='labeling.cca', type=Computer2
*/
public static < T extends IntegerType< T >, L, I extends IntegerType< I > > void labelAllConnectedComponents(
final RandomAccessible< T > input,
diff --git a/src/main/java/net/imglib2/algorithm/lazy/Lazy.java b/src/main/java/net/imglib2/algorithm/lazy/Lazy.java
index 8a093af64..eee487136 100644
--- a/src/main/java/net/imglib2/algorithm/lazy/Lazy.java
+++ b/src/main/java/net/imglib2/algorithm/lazy/Lazy.java
@@ -157,6 +157,7 @@ else if ( DoubleType.class.isInstance( type ) )
* Create a memory {@link CachedCellImg} with a cell generator
* {@link Consumer}.
*
+ * @implNote op name='create.img, engine.create', type=Function
* @param targetInterval
* @param blockSize
* @param type
diff --git a/src/main/java/net/imglib2/algorithm/localextrema/LocalExtrema.java b/src/main/java/net/imglib2/algorithm/localextrema/LocalExtrema.java
index f2b1bce5e..2dd60a6c7 100644
--- a/src/main/java/net/imglib2/algorithm/localextrema/LocalExtrema.java
+++ b/src/main/java/net/imglib2/algorithm/localextrema/LocalExtrema.java
@@ -167,6 +167,7 @@ public static < P, T > ArrayList< P > findLocalExtrema( final RandomAccessibleIn
* {@code source} accordingly. The returned coordinate list is valid
* for the original {@code source}.
*
+ * @implNote op name='features.localExtrema', type=Function
* @param source
* Find local extrema within this
* {@link RandomAccessibleInterval}
@@ -208,6 +209,7 @@ public static < P, T > List< P > findLocalExtrema(
* {@code source} accordingly. The returned coordinate list is valid
* for the original {@code source}.
*
+ * @implNote op name='features.localExtrema', type=Function
* @param source
* Find local extrema within this
* {@link RandomAccessibleInterval}
@@ -248,6 +250,7 @@ public static < P, T > List< P > findLocalExtrema(
* The task is parallelized along the longest dimension of
* {@code interval}
*
+ * @implNote op name='features.localExtrema', type=Function
* @param source
* Find local extrema of the function defined by this
* {@link RandomAccessible}
@@ -287,6 +290,7 @@ public static < P, T > List< P > findLocalExtrema(
* test for being an extremum can be specified as an implementation of the
* {@link LocalNeighborhoodCheck} interface.
*
+ * @implNote op name='features.localExtrema', type=Function
* @param source
* Find local extrema of the function defined by this
* {@link RandomAccessible}
@@ -367,6 +371,7 @@ public static < P, T > List< P > findLocalExtrema(
* expand {@code source} accordingly. The returned coordinate list is
* valid for the original {@code source}.
*
+ * @implNote op name='features.localExtrema', type=Function
* @param source
* Find local extrema within this
* {@link RandomAccessibleInterval}
@@ -393,6 +398,7 @@ public static < P, T > List< P > findLocalExtrema(
* {@code source} accordingly. The returned coordinate list is valid
* for the original {@code source}.
*
+ * @implNote op name='features.localExtrema', type=Function
* @param source
* Find local extrema within this
* {@link RandomAccessibleInterval}
@@ -427,6 +433,7 @@ public static < P, T > List< P > findLocalExtrema(
*
* The local neighborhood is defined as {@link RectangleShape} with span 1.
*
+ * @implNote op name='features.localExtrema', type=Function
* @param source
* Find local extrema within this {@link RandomAccessible}
* @param interval
@@ -451,6 +458,7 @@ public static < P, T > List< P > findLocalExtrema(
* test for being an extremum can be specified as an implementation of the
* {@link LocalNeighborhoodCheck} interface.
*
+ * @implNote op name='features.localExtrema', type=Function
* @param source
* Find local extrema within this {@link RandomAccessible}
* @param interval
@@ -495,6 +503,7 @@ public static < P, T > List< P > findLocalExtrema(
* determining by how much a {@link RandomAccessibleInterval} should be
* expanded to include min and max positions in the local extrema search.
*
+ * @implNote op name='geom.borderSize', type=Function
* @param shape
* Defines the local neighborhood
* @param nDim
diff --git a/src/main/java/net/imglib2/algorithm/morphology/BlackTopHat.java b/src/main/java/net/imglib2/algorithm/morphology/BlackTopHat.java
index 5c2857ee7..05cdd16a9 100644
--- a/src/main/java/net/imglib2/algorithm/morphology/BlackTopHat.java
+++ b/src/main/java/net/imglib2/algorithm/morphology/BlackTopHat.java
@@ -77,7 +77,8 @@ public class BlackTopHat
* allow for performance optimization through structuring element
* decomposition. Each shape is processed in order as given in the list. If
* the list is empty, the source image is returned.
- *
+ *
+ * @implNote op name='morphology.blackTopHat', type=Function
* @param source
* the source image.
* @param strels
@@ -120,7 +121,8 @@ public static < T extends RealType< T >> Img< T > blackTopHat( final Img< T > so
* image, and the converse for the max value. These normally unseen
* parameters are required to operate on
* {@code T extends Comparable & Type}.
- *
+ *
+ * @implNote op name='morphology.blackTopHat', type=Function
* @param source
* the source image.
* @param strels
@@ -159,7 +161,8 @@ public static < T extends Type< T > & Comparable< T > & Sub< T > > Img< T > blac
* limited to flat structuring elements, only having {@code on/off} pixels,
* contrary to grayscale structuring elements. This allows to simply use a
* {@link Shape} as a type for these structuring elements.
- *
+ *
+ * @implNote op name='morphology.blackTopHat', type=Function
* @param source
* the source image.
* @param strel
@@ -196,7 +199,8 @@ public static < T extends RealType< T >> Img< T > blackTopHat( final Img< T > so
* (against {@link Comparable}) than any of the value found in the source
* image, and the converse for the max value. These normally unseen
* parameters are required to operate on {@code T extends Comparable & Sub}.
- *
+ *
+ * @implNote op name='morphology.blackTopHat', type=Function
* @param source
* the source image.
* @param strel
@@ -261,6 +265,7 @@ public static < T extends Type< T > & Comparable< T > & Sub< T > > Img< T > blac
* @param
* the type of the source and the result. Must extends
* {@link RealType}.
+ * @implNote op name='morphology.blackTopHat', type=Computer2
*/
public static < T extends RealType< T > > void blackTopHat( final RandomAccessible< T > source, final IterableInterval< T > target, final List< ? extends Shape > strels, final int numThreads )
{
@@ -320,6 +325,7 @@ public static < T extends RealType< T > > void blackTopHat( final RandomAccessib
* sub-type of {@code T extends Comparable & Sub}, because we
* want to be able to compare pixels between themselves and to
* subtract them.
+ * @implNote op name='morphology.blackTopHat', type=Computer2
*/
public static < T extends Type< T > & Comparable< T > & Sub< T >> void blackTopHat( final RandomAccessible< T > source, final IterableInterval< T > target, final List< ? extends Shape > strels, final T minVal, final T maxVal, final int numThreads )
{
@@ -358,6 +364,7 @@ public static < T extends Type< T > & Comparable< T > & Sub< T >> void blackTopH
* @param
* the type of the source and the result. Must extends
* {@link RealType}.
+ * @implNote op name='morphology.blackTopHat', type=Computer2
*/
public static < T extends RealType< T > > void blackTopHat( final RandomAccessible< T > source, final IterableInterval< T > target, final Shape strel, final int numThreads )
{
@@ -411,6 +418,7 @@ public static < T extends RealType< T > > void blackTopHat( final RandomAccessib
* sub-type of {@code T extends Comparable & Sub}, because we
* want to be able to compare pixels between themselves and to
* subtract them.
+ * @implNote op name='morphology.blackTopHat', type=Computer2
*/
public static < T extends Type< T > & Comparable< T > & Sub< T >> void blackTopHat( final RandomAccessible< T > source, final IterableInterval< T > target, final Shape strel, final T minVal, final T maxVal, final int numThreads )
{
@@ -451,6 +459,7 @@ public static < T extends Type< T > & Comparable< T > & Sub< T >> void blackTopH
* @param
* the type of the source image. Must be a sub-type of
* {@code T extends RealType}.
+ * @implNote op name='morphology.blackTopHat', type=Inplace1
*/
public static < T extends RealType< T >> void blackTopHatInPlace( final RandomAccessible< T > source, final Interval interval, final List< ? extends Shape > strels, final int numThreads )
{
@@ -513,6 +522,7 @@ public static < T extends RealType< T >> void blackTopHatInPlace( final RandomAc
* sub-type of {@code T extends Comparable & Sub}, because we
* want to be able to compare pixels between themselves and to
* subtract them.
+ * @implNote op name='morphology.blackTopHat', type=Inplace1
*/
public static < T extends Type< T > & Comparable< T > & Sub< T >> void blackTopHatInPlace( final RandomAccessible< T > source, final Interval interval, final List< ? extends Shape> strels, final T minVal, final T maxVal, final int numThreads )
{
@@ -555,6 +565,7 @@ public static < T extends Type< T > & Comparable< T > & Sub< T >> void blackTopH
* @param
* the type of the source image. Must be a sub-type of
* {@code T extends RealType}.
+ * @implNote op name='morphology.blackTopHat', type=Inplace1
*/
public static < T extends RealType< T >> void blackTopHatInPlace( final RandomAccessible< T > source, final Interval interval, final Shape strel, final int numThreads )
{
@@ -612,6 +623,7 @@ public static < T extends RealType< T >> void blackTopHatInPlace( final RandomAc
* sub-type of {@code T extends Comparable & Sub}, because we
* want to be able to compare pixels between themselves and to
* subtract them.
+ * @implNote op name='morphology.blackTopHat', type=Inplace1
*/
public static < T extends Type< T > & Comparable< T > & Sub< T >> void blackTopHatInPlace( final RandomAccessible< T > source, final Interval interval, final Shape strel, final T minVal, final T maxVal, final int numThreads )
{
diff --git a/src/main/java/net/imglib2/algorithm/morphology/Closing.java b/src/main/java/net/imglib2/algorithm/morphology/Closing.java
index 918c8a42c..f1b673693 100644
--- a/src/main/java/net/imglib2/algorithm/morphology/Closing.java
+++ b/src/main/java/net/imglib2/algorithm/morphology/Closing.java
@@ -63,7 +63,8 @@ public class Closing
* allow for performance optimization through structuring element
* decomposition. Each shape is processed in order as given in the list. If
* the list is empty, the source image is returned.
- *
+ *
+ * @implNote op name='morphology.close', type=Function
* @param source
* the {@link Img} to operate on.
* @param strels
@@ -104,7 +105,8 @@ public static final < T extends RealType< T >> Img< T > close( final Img< T > so
* image, and the converse for the max value. These normally unseen
* parameters are required to operate on
* {@code T extends Comparable & Type}.
- *
+ *
+ * @implNote op name='morphology.close', type=Function
* @param source
* the {@link Img} to operate on.
* @param strels
@@ -138,7 +140,8 @@ public static final < T extends Type< T > & Comparable< T > > Img< T > close( fi
* >Closing_(morphology).
*
* The closing operation is simply a dilation followed by an erosion.
- *
+ *
+ * @implNote op name='morphology.close', type=Function
* @param source
* the {@link Img} to operate on.
* @param strel
@@ -174,7 +177,8 @@ public static final < T extends RealType< T >> Img< T > close( final Img< T > so
* image, and the converse for the max value. These normally unseen
* parameters are required to operate on
* {@code T extends Comparable & Type}.
- *
+ *
+ * @implNote op name='morphology.close', type=Function
* @param source
* the {@link Img} to operate on.
* @param strel
@@ -238,6 +242,7 @@ public static final < T extends Type< T > & Comparable< T > > Img< T > close( fi
* @param
* the type of the source and the result. Must extends
* {@link RealType}.
+ * @implNote op name='morphology.close', type=Computer2
*/
public static < T extends RealType< T > > void close( final RandomAccessible< T > source, final IterableInterval< T > target, final List< ? extends Shape > strels, final int numThreads )
{
@@ -300,6 +305,7 @@ public static < T extends RealType< T > > void close( final RandomAccessible< T
* @param
* the type of the source and the result. Must extends
* {@code Compparable}.
+ * @implNote op name='morphology.close', type=Computer2
*/
public static < T extends Type< T > & Comparable< T > > void close( final RandomAccessible< T > source, final IterableInterval< T > target, final List< ? extends Shape > strels, final T minVal, final T maxVal, final int numThreads )
{
@@ -349,6 +355,7 @@ public static < T extends Type< T > & Comparable< T > > void close( final Random
* @param
* the type of the source and the result. Must extends
* {@link RealType}.
+ * @implNote op name='morphology.close', type=Computer2
*/
public static < T extends RealType< T > > void close( final RandomAccessible< T > source, final IterableInterval< T > target, final Shape strel, final int numThreads )
{
@@ -406,6 +413,7 @@ public static < T extends RealType< T > > void close( final RandomAccessible< T
* @param
* the type of the source and the result. Must extends
* {@code Comparable}.
+ * @implNote op name='morphology.close', type=Computer2
*/
public static < T extends Type< T > & Comparable< T > > void close( final RandomAccessible< T > source, final IterableInterval< T > target, final Shape strel, final T minVal, final T maxVal, final int numThreads )
{
@@ -443,7 +451,8 @@ public static < T extends Type< T > & Comparable< T > > void close( final Random
* allow for performance optimization through structuring element
* decomposition. Each shape is processed in order as given in the list. If
* the list is empty, the source image is returned.
- *
+ *
+ * @implNote op name='morphology.close', type=Inplace1
* @param source
* the source image.
* @param interval
@@ -495,7 +504,8 @@ public static < T extends RealType< T > > void closeInPlace( final RandomAccessi
* image, and conversely for the min value. These normally unseen parameters
* are required to operate on
* {@code T extends Comparable & Type}.
- *
+ *
+ * @implNote op name='morphology.close', type=Inplace1
* @param source
* the source image.
* @param interval
@@ -546,7 +556,8 @@ public static < T extends Type< T > & Comparable< T >> void closeInPlace( final
* image, and conversely for the min value. These normally unseen parameters
* are required to operate on
* {@code T extends Comparable & Type}.
- *
+ *
+ * @implNote op name='morphology.close', type=Inplace1
* @param source
* the source image.
* @param interval
@@ -598,7 +609,8 @@ public static < T extends RealType< T > > void closeInPlace( final RandomAccessi
* image, and conversely for the min value. These normally unseen parameters
* are required to operate on
* {@code T extends Comparable & Type}.
- *
+ *
+ * @implNote op name='morphology.close', type=Inplace1
* @param source
* the source image.
* @param interval
diff --git a/src/main/java/net/imglib2/algorithm/morphology/Dilation.java b/src/main/java/net/imglib2/algorithm/morphology/Dilation.java
index 947f93a83..6b0f888aa 100644
--- a/src/main/java/net/imglib2/algorithm/morphology/Dilation.java
+++ b/src/main/java/net/imglib2/algorithm/morphology/Dilation.java
@@ -76,6 +76,7 @@ public class Dilation
* pixels, contrary to grayscale structuring elements. This allows to simply
* use a {@link Shape} as a type for these structuring elements.
*
+ * @implNote op names='morphology.dilate', type=Function
* @param source
* the source image.
* @param strels
@@ -121,6 +122,7 @@ public static < T extends RealType< T > > Img< T > dilate( final Img< T > source
* image. This normally unseen parameter is required to operate on
* {@code T extends Comparable & Type}.
*
+ * @implNote op names='morphology.dilate', type=Function
* @param source
* the source image.
* @param strels
@@ -160,6 +162,7 @@ public static < T extends Type< T > & Comparable< T > > Img< T > dilate( final I
* pixels, contrary to grayscale structuring elements. This allows to simply
* use a {@link Shape} as a type for these structuring elements.
*
+ * @implNote op names='morphology.dilate', type=Function
* @param source
* the source image.
* @param strel
@@ -200,6 +203,7 @@ public static < T extends RealType< T >> Img< T > dilate( final Img< T > source,
* image. This normally unseen parameter is required to operate on
* {@code T extends Comparable & Type}.
*
+ * @implNote op names='morphology.dilate', type=Function
* @param source
* the source image.
* @param strel
@@ -259,6 +263,7 @@ public static < T extends Type< T > & Comparable< T > > Img< T > dilate( final I
* the structuring element, as a list of {@link Shape}s.
* @param numThreads
* the number of threads to use for the calculation.
+ * @implNote op name='morphology.dilate', type=Computer2
*/
public static < T extends RealType< T >> void dilate( final RandomAccessible< T > source, final IterableInterval< T > target, final List< ? extends Shape > strels, final int numThreads )
{
@@ -316,6 +321,7 @@ public static < T extends RealType< T >> void dilate( final RandomAccessible< T
* @param
* the type of the source image and the dilation result. Must be
* a sub-type of {@code T extends Comparable & Type}.
+ * @implNote op name='morphology.dilate', type=Computer2
*/
public static < T extends Type< T > & Comparable< T > > void dilate( final RandomAccessible< T > source, final IterableInterval< T > target, final List< ? extends Shape > strels, final T minVal, final int numThreads )
{
@@ -394,6 +400,7 @@ public static < T extends Type< T > & Comparable< T > > void dilate( final Rando
* the structuring element, as a {@link Shape}.
* @param numThreads
* the number of threads to use for the calculation.
+ * @implNote op name='morphology.dilate', type=Computer2
*/
public static < T extends RealType< T >> void dilate( final RandomAccessible< T > source, final IterableInterval< T > target, final Shape strel, final int numThreads )
{
@@ -446,6 +453,7 @@ public static < T extends RealType< T >> void dilate( final RandomAccessible< T
* @param
* the type of the source image and the dilation result. Must be
* a sub-type of {@code T extends Comparable & Type}.
+ * @implNote op name='morphology.dilate', type=Computer2
*/
public static < T extends Type< T > & Comparable< T > > void dilate( final RandomAccessible< T > source, final IterableInterval< T > target, final Shape strel, final T minVal, int numThreads )
{
@@ -597,6 +605,7 @@ public void run()
* dimensions equals to the maximum of the number of dimension of both
* source and structuring element.
*
+ * @implNote op name='morphology.dilate', type=Function
* @param source
* the source image.
* @param strels
@@ -655,6 +664,7 @@ public static < T extends RealType< T > > Img< T > dilateFull( final Img< T > so
* dimensions equals to the maximum of the number of dimension of both
* source and structuring element.
*
+ * @implNote op name='morphology.dilate', type=Function
* @param source
* the source image.
* @param strels
@@ -707,6 +717,7 @@ public static < T extends Type< T > & Comparable< T > > Img< T > dilateFull( fin
* dimensions equals to the maximum of the number of dimension of both
* source and structuring element.
*
+ * @implNote op name='morphology.dilate', type=Function
* @param source
* the source image.
* @param strel
@@ -767,6 +778,7 @@ public static < T extends RealType< T >> Img< T > dilateFull( final Img< T > sou
* dimensions equals to the maximum of the number of dimension of both
* source and structuring element.
*
+ * @implNote op name='morphology.dilate', type=Function
* @param source
* the source image.
* @param strel
@@ -821,6 +833,7 @@ public static < T extends Type< T > & Comparable< T > > Img< T > dilateFull( fin
* decomposition. Each shape is processed in order as given in the list. If
* the list is empty, the source image is returned.
*
+ * @implNote op name='morphology.dilate', type=Inplace1
* @param source
* the source image.
* @param interval
@@ -870,6 +883,7 @@ public static < T extends RealType< T > > void dilateInPlace( final RandomAccess
* image. This normally unseen parameter is required to operate on
* {@code T extends Comparable & Type}.
*
+ * @implNote op name='morphology.dilate', type=Inplace1
* @param source
* the source image.
* @param interval
@@ -913,6 +927,7 @@ public static < T extends Type< T > & Comparable< T > > void dilateInPlace( fina
* e.g. {@link Views#extendValue(RandomAccessibleInterval, Type)}
*
*
+ * @implNote op name='morphology.dilate', type=Inplace1
* @param source
* the source image.
* @param interval
@@ -965,6 +980,7 @@ public static < T extends RealType< T > > void dilateInPlace( final RandomAccess
* image. This normally unseen parameter is required to operate on
* {@code T extends Comparable & Type}.
*
+ * @implNote op name='morphology.dilate', type=Inplace1
* @param source
* the source image.
* @param interval
diff --git a/src/main/java/net/imglib2/algorithm/morphology/Erosion.java b/src/main/java/net/imglib2/algorithm/morphology/Erosion.java
index aced24af1..a2177daf6 100644
--- a/src/main/java/net/imglib2/algorithm/morphology/Erosion.java
+++ b/src/main/java/net/imglib2/algorithm/morphology/Erosion.java
@@ -76,6 +76,7 @@ public class Erosion
* pixels, contrary to grayscale structuring elements. This allows to simply
* use a {@link Shape} as a type for these structuring elements.
*
+ * @implNote op name='morphology.erode', type=Function
* @param source
* the source image.
* @param strels
@@ -121,6 +122,7 @@ public static < T extends RealType< T > > Img< T > erode( final Img< T > source,
* normally unseen parameter is required to operate on
* {@code T extends Comparable & Type}.
*
+ * @implNote op name='morphology.erode', type=Function
* @param source
* the source image.
* @param strels
@@ -160,6 +162,7 @@ public static < T extends Type< T > & Comparable< T > > Img< T > erode( final Im
* pixels, contrary to grayscale structuring elements. This allows to simply
* use a {@link Shape} as a type for these structuring elements.
*
+ * @implNote op name='morphology.erode', type=Function
* @param source
* the source image.
* @param strel
@@ -200,6 +203,7 @@ public static < T extends RealType< T >> Img< T > erode( final Img< T > source,
* normally unseen parameter is required to operate on
* {@code T extends Comparable & Type}.
*
+ * @implNote op name='morphology.erode', type=Function
* @param source
* the source image.
* @param strel
@@ -259,6 +263,7 @@ public static < T extends Type< T > & Comparable< T > > Img< T > erode( final Im
* the structuring element, as a list of {@link Shape}s.
* @param numThreads
* the number of threads to use for the calculation.
+ * @implNote op name='morphology.erode', type=Computer2
*/
public static < T extends RealType< T >> void erode( final RandomAccessible< T > source, final IterableInterval< T > target, final List< ? extends Shape > strels, final int numThreads )
{
@@ -316,6 +321,7 @@ public static < T extends RealType< T >> void erode( final RandomAccessible< T >
* @param
* the type of the source image and the erosion result. Must be a
* sub-type of {@code T extends Comparable & Type}.
+ * @implNote op name='morphology.erode', type=Computer2
*/
public static < T extends Type< T > & Comparable< T > > void erode( final RandomAccessible< T > source, final IterableInterval< T > target, final List< ? extends Shape > strels, final T maxVal, final int numThreads )
{
@@ -394,6 +400,7 @@ public static < T extends Type< T > & Comparable< T > > void erode( final Random
* the structuring element, as a {@link Shape}.
* @param numThreads
* the number of threads to use for the calculation.
+ * @implNote op name='morphology.erode', type=Computer2
*/
public static < T extends RealType< T >> void erode( final RandomAccessible< T > source, final IterableInterval< T > target, final Shape strel, final int numThreads )
{
@@ -446,6 +453,7 @@ public static < T extends RealType< T >> void erode( final RandomAccessible< T >
* @param
* the type of the source image and the erosion result. Must be a
* sub-type of {@code T extends Comparable & Type}.
+ * @implNote op name='morphology.erode', type=Computer2
*/
public static < T extends Type< T > & Comparable< T > > void erode( final RandomAccessible< T > source, final IterableInterval< T > target, final Shape strel, final T maxVal, int numThreads )
{
@@ -597,6 +605,7 @@ public void run()
* dimensions equals to the maximum of the number of dimension of both
* source and structuring element.
*
+ * @implNote op name='morphology.erode', type=Function
* @param source
* the source image.
* @param strels
@@ -655,6 +664,7 @@ public static < T extends RealType< T > > Img< T > erodeFull( final Img< T > sou
* dimensions equals to the maximum of the number of dimension of both
* source and structuring element.
*
+ * @implNote op name='morphology.erode', type=Function
* @param source
* the source image.
* @param strels
@@ -707,6 +717,7 @@ public static < T extends Type< T > & Comparable< T > > Img< T > erodeFull( fina
* dimensions equals to the maximum of the number of dimension of both
* source and structuring element.
*
+ * @implNote op name='morphology.erode', type=Function
* @param source
* the source image.
* @param strel
@@ -767,6 +778,7 @@ public static < T extends RealType< T >> Img< T > erodeFull( final Img< T > sour
* dimensions equals to the maximum of the number of dimension of both
* source and structuring element.
*
+ * @implNote op name='morphology.erode', type=Function
* @param source
* the source image.
* @param strel
@@ -821,6 +833,7 @@ public static < T extends Type< T > & Comparable< T > > Img< T > erodeFull( fina
* decomposition. Each shape is processed in order as given in the list. If
* the list is empty, the source image is returned.
*
+ * @implNote op name='morphology.erode', type=Inplace1
* @param source
* the source image.
* @param interval
@@ -870,6 +883,7 @@ public static < T extends RealType< T > > void erodeInPlace( final RandomAccessi
* normally unseen parameter is required to operate on
* {@code T extends Comparable & Type}.
*
+ * @implNote op name='morphology.erode', type=Inplace1
* @param source
* the source image.
* @param interval
@@ -913,6 +927,7 @@ public static < T extends Type< T > & Comparable< T > > void erodeInPlace( final
* e.g. {@link Views#extendValue(RandomAccessibleInterval, Type)}
*
*
+ * @implNote op name='morphology.erode', type=Inplace1
* @param source
* the source image.
* @param interval
@@ -962,6 +977,7 @@ public static < T extends RealType< T > > void erodeInPlace( final RandomAccessi
* normally unseen parameter is required to operate on
* {@code T extends Comparable & Type}.
*
+ * @implNote op name='morphology.erode', type=Inplace1
* @param source
* the source image.
* @param interval
diff --git a/src/main/java/net/imglib2/algorithm/morphology/Opening.java b/src/main/java/net/imglib2/algorithm/morphology/Opening.java
index ae7c716f3..6d6ad0718 100644
--- a/src/main/java/net/imglib2/algorithm/morphology/Opening.java
+++ b/src/main/java/net/imglib2/algorithm/morphology/Opening.java
@@ -70,7 +70,8 @@ public class Opening
* allow for performance optimization through structuring element
* decomposition. Each shape is processed in order as given in the list. If
* the list is empty, the source image is returned.
- *
+ *
+ * @implNote op name='morphology.open', type=Function
* @param source
* the {@link Img} to operate on.
* @param strels
@@ -111,7 +112,8 @@ public static final < T extends RealType< T >> Img< T > open( final Img< T > sou
* image, and the converse for the max value. These normally unseen
* parameters are required to operate on
* {@code T extends Comparable & Type}.
- *
+ *
+ * @implNote op name='morphology.open', type=Function
* @param source
* the {@link Img} to operate on.
* @param strels
@@ -145,7 +147,8 @@ public static final < T extends Type< T > & Comparable< T > > Img< T > open( fin
* >Opening_(morphology).
*
* The opening operation is simply an erosion followed by a dilation.
- *
+ *
+ * @implNote op name='morphology.open', type=Function
* @param source
* the {@link Img} to operate on.
* @param strel
@@ -181,7 +184,8 @@ public static final < T extends RealType< T >> Img< T > open( final Img< T > sou
* image, and the converse for the max value. These normally unseen
* parameters are required to operate on
* {@code T extends Comparable & Type}.
- *
+ *
+ * @implNote op name='morphology.open', type=Function
* @param source
* the {@link Img} to operate on.
* @param strel
@@ -245,6 +249,7 @@ public static final < T extends Type< T > & Comparable< T > > Img< T > open( fin
* @param
* the type of the source and the result. Must extends
* {@link RealType}.
+ * @implNote op name='morphology.erode', type=Computer2
*/
public static < T extends RealType< T > > void open( final RandomAccessible< T > source, final IterableInterval< T > target, final List< ? extends Shape > strels, final int numThreads )
{
@@ -307,6 +312,7 @@ public static < T extends RealType< T > > void open( final RandomAccessible< T >
* @param
* the type of the source and the result. Must extends
* {@code Compparable}.
+ * @implNote op name='morphology.erode', type=Computer2
*/
public static < T extends Type< T > & Comparable< T > > void open( final RandomAccessible< T > source, final IterableInterval< T > target, final List< ? extends Shape > strels, final T minVal, final T maxVal, final int numThreads )
{
@@ -356,6 +362,7 @@ public static < T extends Type< T > & Comparable< T > > void open( final RandomA
* @param
* the type of the source and the result. Must extends
* {@link RealType}.
+ * @implNote op name='morphology.open', type=Computer2
*/
public static < T extends RealType< T > > void open( final RandomAccessible< T > source, final IterableInterval< T > target, final Shape strel, final int numThreads )
{
@@ -413,6 +420,7 @@ public static < T extends RealType< T > > void open( final RandomAccessible< T >
* @param
* the type of the source and the result. Must extends
* {@code Comparable}.
+ * @implNote op name='morphology.erode', type=Computer2
*/
public static < T extends Type< T > & Comparable< T > > void open( final RandomAccessible< T > source, final IterableInterval< T > target, final Shape strel, final T minVal, final T maxVal, final int numThreads )
{
@@ -450,7 +458,8 @@ public static < T extends Type< T > & Comparable< T > > void open( final RandomA
* allow for performance optimization through structuring element
* decomposition. Each shape is processed in order as given in the list. If
* the list is empty, the source image is left untouched.
- *
+ *
+ * @implNote op name='morphology.open', type=Inplace1
* @param source
* the source image.
* @param interval
@@ -502,7 +511,8 @@ public static < T extends RealType< T > > void openInPlace( final RandomAccessib
* image, and conversely for the min value. These normally unseen parameters
* are required to operate on
* {@code T extends Comparable & Type}.
- *
+ *
+ * @implNote op name='morphology.open', type=Inplace1
* @param source
* the source image.
* @param interval
@@ -545,7 +555,8 @@ public static < T extends Type< T > & Comparable< T >> void openInPlace( final R
* It is the caller responsibility to ensure that the source is sufficiently
* padded to properly cover the target range plus the shape size. See
* e.g. {@link Views#extendValue(RandomAccessibleInterval, Type)}.
- *
+ *
+ * @implNote op name='morphology.open', type=Inplace1
* @param source
* the source image.
* @param interval
@@ -592,7 +603,8 @@ public static < T extends RealType< T > > void openInPlace( final RandomAccessib
* image, and conversely for the min value. These normally unseen parameters
* are required to operate on
* {@code T extends Comparable & Type}.
- *
+ *
+ * @implNote op name='morphology.open', type=Inplace1
* @param source
* the source image.
* @param interval
diff --git a/src/main/java/net/imglib2/algorithm/morphology/StructuringElements.java b/src/main/java/net/imglib2/algorithm/morphology/StructuringElements.java
index 04880bc5e..a96734db0 100644
--- a/src/main/java/net/imglib2/algorithm/morphology/StructuringElements.java
+++ b/src/main/java/net/imglib2/algorithm/morphology/StructuringElements.java
@@ -628,6 +628,7 @@ public static final List< Shape > diamond( final int radius, final int dimension
* @param increments
* the values by which each element of the position vector is to
* be incremented when iterating.
+ * @return a {@link Shape} structuring element.
* @see [1]
* Jones and Soilles.Periodic lines: Definition, cascades, and
diff --git a/src/main/java/net/imglib2/algorithm/morphology/TopHat.java b/src/main/java/net/imglib2/algorithm/morphology/TopHat.java
index 3f4015c53..85744155e 100644
--- a/src/main/java/net/imglib2/algorithm/morphology/TopHat.java
+++ b/src/main/java/net/imglib2/algorithm/morphology/TopHat.java
@@ -78,7 +78,8 @@ public class TopHat
* decomposition. Each shape is processed in order as given in the list. If
* the list is empty, the source image is returned.
*
- *
+ *
+ * @implNote op names='morphology.topHat, morphology.whiteTopHat', type=Function
* @param source
* the source image.
* @param strels
@@ -122,7 +123,8 @@ public static < T extends RealType< T >> Img< T > topHat( final Img< T > source,
* image, and the converse for the max value. These normally unseen
* parameters are required to operate on
* {@code T extends Comparable & Type}.
- *
+ *
+ * @implNote op names='morphology.topHat, morphology.whiteTopHat', type=Function
* @param source
* the source image.
* @param strels
@@ -161,7 +163,8 @@ public static < T extends Type< T > & Comparable< T > & Sub< T > > Img< T > topH
* limited to flat structuring elements, only having {@code on/off}
* pixels, contrary to grayscale structuring elements. This allows to simply
* use a {@link Shape} as a type for these structuring elements.
- *
+ *
+ * @implNote op names='morphology.topHat, morphology.whiteTopHat', type=Function
* @param source
* the source image.
* @param strel
@@ -199,7 +202,8 @@ public static < T extends RealType< T >> Img< T > topHat( final Img< T > source,
* image, and the converse for the max value. These normally unseen
* parameters are required to operate on
* {@code T extends Comparable & Sub}.
- *
+ *
+ * @implNote op names='morphology.topHat, morphology.whiteTopHat', type=Function
* @param source
* the source image.
* @param strel
@@ -264,6 +268,7 @@ public static < T extends Type< T > & Comparable< T > & Sub< T > > Img< T > topH
* @param
* the type of the source and the result. Must extends
* {@link RealType}.
+ * @implNote op name='morphology.topHat, morphology.whiteTopHat', type=Computer2
*/
public static < T extends RealType< T >> void topHat( final RandomAccessible< T > source, final IterableInterval< T > target, final List< ? extends Shape > strels, final int numThreads )
{
@@ -325,6 +330,7 @@ public static < T extends RealType< T >> void topHat( final RandomAccessible< T
* sub-type of {@code T extends Comparable & Sub},
* because we want to be able to compare pixels between
* themselves and to subtract them.
+ * @implNote op name='morphology.topHat, morphology.whiteTopHat', type=Computer2
*/
public static < T extends Type< T > & Comparable< T > & Sub< T >> void topHat( final RandomAccessible< T > source, final IterableInterval< T > target, final List< ? extends Shape > strels, final T minVal, final T maxVal, final int numThreads )
{
@@ -364,6 +370,7 @@ public static < T extends Type< T > & Comparable< T > & Sub< T >> void topHat( f
* @param
* the type of the source and the result. Must extends
* {@link RealType}.
+ * @implNote op name='morphology.topHat, morphology.whiteTopHat', type=Computer2
*/
public static < T extends RealType< T >> void topHat( final RandomAccessible< T > source, final IterableInterval< T > target, final Shape strel, final int numThreads )
{
@@ -419,6 +426,7 @@ public static < T extends RealType< T >> void topHat( final RandomAccessible< T
* sub-type of {@code T extends Comparable & Sub},
* because we want to be able to compare pixels between
* themselves and to subtract them.
+ * @implNote op name='morphology.topHat, morphology.whiteTopHat', type=Computer2
*/
public static < T extends Type< T > & Comparable< T > & Sub< T >> void topHat( final RandomAccessible< T > source, final IterableInterval< T > target, final Shape strel, final T minVal, final T maxVal, final int numThreads )
{
@@ -447,7 +455,8 @@ public static < T extends Type< T > & Comparable< T > & Sub< T >> void topHat( f
* allow for performance optimization through structuring element
* decomposition. Each shape is processed in order as given in the list. If
* the list is empty, the source image is left untouched.
- *
+ *
+ * @implNote op name='morphology.topHat, morphology.whiteTopHat', type=Inplace1
* @param source
* the source image.
* @param interval
@@ -502,7 +511,8 @@ public static < T extends RealType< T >> void topHatInPlace( final RandomAccessi
* conversely for the min value. These normally unseen parameters are
* required to operate on
* {@code T extends Comparable & Sub}.
- *
+ *
+ * @implNote op name='morphology.topHat, morphology.whiteTopHat', type=Inplace1
* @param source
* the source image.
* @param interval
@@ -552,7 +562,8 @@ public static < T extends Type< T > & Comparable< T > & Sub< T >> void topHatInP
* It is the caller responsibility to ensure that the source is sufficiently
* padded to properly cover the target range plus the shape size. See
* e.g. {@link Views#extendValue(RandomAccessibleInterval, Type)}.
- *
+ *
+ * @implNote op name='morphology.topHat, morphology.whiteTopHat', type=Inplace1
* @param source
* the source image.
* @param interval
@@ -602,7 +613,8 @@ public static < T extends RealType< T >> void topHatInPlace( final RandomAccessi
* conversely for the min value. These normally unseen parameters are
* required to operate on
* {@code T extends Comparable & Sub}.
- *
+ *
+ * @implNote op name='morphology.topHat, morphology.whiteTopHat', type=Inplace1
* @param source
* the source image.
* @param interval
diff --git a/src/main/java/net/imglib2/algorithm/morphology/distance/DistanceTransform.java b/src/main/java/net/imglib2/algorithm/morphology/distance/DistanceTransform.java
index 24f4e2482..156847619 100644
--- a/src/main/java/net/imglib2/algorithm/morphology/distance/DistanceTransform.java
+++ b/src/main/java/net/imglib2/algorithm/morphology/distance/DistanceTransform.java
@@ -122,6 +122,7 @@ public static enum DISTANCE_TYPE
* should be squared, too).
* @param
* {@link RealType} input
+ * @implNote op name='image.distanceTransform', type=Inplace1
*/
public static < T extends RealType< T > > void transform(
final RandomAccessibleInterval< T > source,
@@ -161,6 +162,7 @@ public static < T extends RealType< T > > void transform(
* @throws ExecutionException
* if the computation threw an exception (distance transform may
* be computed only partially)
+ * @implNote op name='image.distanceTransform', type=Inplace1
*/
public static < T extends RealType< T > > void transform(
final RandomAccessibleInterval< T > source,
@@ -195,6 +197,7 @@ public static < T extends RealType< T > > void transform(
* {@link RealType} input
* @param
* {@link RealType} intermediate results
+ * @implNote op name='image.distanceTransform', type=Computer2
*/
public static < T extends RealType< T >, U extends RealType< U > > void transform(
final RandomAccessible< T > source,
@@ -239,6 +242,7 @@ public static < T extends RealType< T >, U extends RealType< U > > void transfor
* @throws ExecutionException
* if the computation threw an exception (distance transform may
* be computed only partially)
+ * @implNote op name='image.distanceTransform', type=Computer2
*/
public static < T extends RealType< T >, U extends RealType< U > > void transform(
final RandomAccessible< T > source,
@@ -279,6 +283,7 @@ public static < T extends RealType< T >, U extends RealType< U > > void transfor
* {@link RealType} intermediate results
* @param
* {@link RealType} output
+ * @implNote op name='image.distanceTransform', type=Computer3
*/
public static < T extends RealType< T >, U extends RealType< U >, V extends RealType< V > > void transform(
final RandomAccessible< T > source,
@@ -343,6 +348,7 @@ public static < T extends RealType< T >, U extends RealType< U >, V extends Real
* @throws ExecutionException
* if the computation threw an exception (distance transform may
* be computed only partially)
+ * @implNote op name='image.distanceTransform', type=Computer3
*/
public static < T extends RealType< T >, U extends RealType< U >, V extends RealType< V > > void transform(
final RandomAccessible< T > source,
@@ -383,6 +389,7 @@ public static < T extends RealType< T >, U extends RealType< U >, V extends Real
* {@link Distance} between two points.
* @param
* {@link RealType} input
+ * @implNote op name='image.distanceTransform', type=Inplace1
*/
public static < T extends RealType< T > > void transform(
final RandomAccessibleInterval< T > source,
@@ -415,6 +422,7 @@ public static < T extends RealType< T > > void transform(
* @throws ExecutionException
* if the computation threw an exception (distance transform may
* be computed only partially)
+ * @implNote op name='image.distanceTransform', type=Inplace1
*/
public static < T extends RealType< T > > void transform(
final RandomAccessibleInterval< T > source,
@@ -442,6 +450,7 @@ public static < T extends RealType< T > > void transform(
* {@link RealType} input
* @param
* {@link RealType} intermediate results
+ * @implNote op name='image.distanceTransform', type=Computer2
*/
public static < T extends RealType< T >, U extends RealType< U > > void transform(
final RandomAccessible< T > source,
@@ -479,6 +488,7 @@ public static < T extends RealType< T >, U extends RealType< U > > void transfor
* @throws ExecutionException
* if the computation threw an exception (distance transform may
* be computed only partially)
+ * @implNote op name='image.distanceTransform', type=Computer2
*/
public static < T extends RealType< T >, U extends RealType< U > > void transform(
final RandomAccessible< T > source,
@@ -512,6 +522,7 @@ public static < T extends RealType< T >, U extends RealType< U > > void transfor
* {@link RealType} intermediate results
* @param
* {@link RealType} output
+ * @implNote op name='image.distanceTransform', type=Computer2
*/
public static < T extends RealType< T >, U extends RealType< U >, V extends RealType< V > > void transform(
final RandomAccessible< T > source,
@@ -583,6 +594,7 @@ public static < T extends RealType< T >, U extends RealType< U >, V extends Real
* @throws ExecutionException
* if the computation threw an exception (distance transform may
* be computed only partially)
+ * @implNote op name='image.distanceTransform', type=Computer3
*/
public static < T extends RealType< T >, U extends RealType< U >, V extends RealType< V > > void transform(
final RandomAccessible< T > source,
@@ -646,6 +658,7 @@ public static < T extends RealType< T >, U extends RealType< U >, V extends Real
* {@link BooleanType} binary mask input
* @param
* {@link RealType} intermediate results
+ * @implNote op name='image.distanceTransform', priority='100', type=Computer2
*/
public static < B extends BooleanType< B >, U extends RealType< U > > void binaryTransform(
final RandomAccessible< B > source,
@@ -688,6 +701,7 @@ public static < B extends BooleanType< B >, U extends RealType< U > > void binar
* @throws ExecutionException
* if the computation threw an exception (distance transform may
* be computed only partially)
+ * @implNote op name='image.distanceTransform', priority='100', type=Computer2
*/
public static < B extends BooleanType< B >, U extends RealType< U > > void binaryTransform(
final RandomAccessible< B > source,
@@ -726,6 +740,7 @@ public static < B extends BooleanType< B >, U extends RealType< U > > void binar
* {@link RealType} intermediate results
* @param
* {@link RealType} output
+ * @implNote op name='image.distanceTransform', priority='100', type=Computer3
*/
public static < B extends BooleanType< B >, U extends RealType< U >, V extends RealType< V > > void binaryTransform(
final RandomAccessible< B > source,
@@ -779,6 +794,7 @@ public static < B extends BooleanType< B >, U extends RealType< U >, V extends R
* @throws ExecutionException
* if the computation threw an exception (distance transform may
* be computed only partially)
+ * @implNote op name='image.distanceTransform', priority='100', type=Computer3
*/
public static < B extends BooleanType< B >, U extends RealType< U >, V extends RealType< V > > void binaryTransform(
final RandomAccessible< B > source,
@@ -818,6 +834,7 @@ public static < B extends BooleanType< B >, U extends RealType< U >, V extends R
* @throws ExecutionException
* if the computation threw an exception (distance transform may
* be computed only partially)
+ * @implNote op name='image.distanceTransform', priority='100', type=Inplace1
*/
public static < B extends BooleanType< B > > void binaryTransform(
final RandomAccessibleInterval< B > source,
@@ -843,6 +860,7 @@ public static < B extends BooleanType< B > > void binaryTransform(
* {@link BooleanType} binary mask input
* @param
* {@link RealType} intermediate results
+ * @implNote op name='image.distanceTransform', priority='100', type=Computer2
*/
public static < B extends BooleanType< B >, U extends RealType< U > > void binaryTransform(
final RandomAccessible< B > source,
@@ -878,6 +896,7 @@ public static < B extends BooleanType< B >, U extends RealType< U > > void binar
* @throws ExecutionException
* if the computation threw an exception (distance transform may
* be computed only partially)
+ * @implNote op name='image.distanceTransform', priority='100', type=Computer2
*/
public static < B extends BooleanType< B >, U extends RealType< U > > void binaryTransform(
final RandomAccessible< B > source,
@@ -909,6 +928,7 @@ public static < B extends BooleanType< B >, U extends RealType< U > > void binar
* {@link RealType} intermediate results
* @param
* {@link RealType} output
+ * @implNote op name='image.distanceTransform', priority='100', type=Computer3
*/
public static < B extends BooleanType< B >, U extends RealType< U >, V extends RealType< V > > void binaryTransform(
final RandomAccessible< B > source,
@@ -954,6 +974,7 @@ public static < B extends BooleanType< B >, U extends RealType< U >, V extends R
* @throws ExecutionException
* if the computation threw an exception (distance transform may
* be computed only partially)
+ * @implNote op name='image.distanceTransform', priority='100', type=Computer3
*/
public static < B extends BooleanType< B >, U extends RealType< U >, V extends RealType< V > > void binaryTransform(
final RandomAccessible< B > source,
diff --git a/src/main/java/net/imglib2/algorithm/morphology/table2d/Branchpoints.java b/src/main/java/net/imglib2/algorithm/morphology/table2d/Branchpoints.java
index 864194e18..ae90dda4e 100644
--- a/src/main/java/net/imglib2/algorithm/morphology/table2d/Branchpoints.java
+++ b/src/main/java/net/imglib2/algorithm/morphology/table2d/Branchpoints.java
@@ -69,11 +69,21 @@ protected boolean getExtendedValue()
return false;
}
+ /**
+ * @param source the input data
+ * @return a copy of {@code source}, containing only skeleton branchpoints
+ * @implNote op name='morphology.branchpoints'
+ */
public static < T extends BooleanType< T > > Img< T > branchpoints( final Img< T > source )
{
return new Branchpoints().calculate( source );
}
+ /**
+ * @param source the input data
+ * @param target a preallocated output buffer
+ * @implNote op name='morphology.branchpoints', type=Computer
+ */
public static < T extends BooleanType< T > > void branchpoints( final RandomAccessible< T > source, final IterableInterval< T > target )
{
new Branchpoints().calculate( source, target );
diff --git a/src/main/java/net/imglib2/algorithm/morphology/table2d/Bridge.java b/src/main/java/net/imglib2/algorithm/morphology/table2d/Bridge.java
index 66e581455..991b0b272 100644
--- a/src/main/java/net/imglib2/algorithm/morphology/table2d/Bridge.java
+++ b/src/main/java/net/imglib2/algorithm/morphology/table2d/Bridge.java
@@ -66,11 +66,21 @@ protected boolean getExtendedValue()
return false;
}
+ /**
+ * @param source the input data
+ * @return a copy of {@code source}, with bridges placed to join objects with only a single separating pixel.
+ * @implNote op name='morphology.bridge'
+ */
public static < T extends BooleanType< T > > Img< T > bridge( final Img< T > source )
{
return new Bridge().calculate( source );
}
+ /**
+ * @param source the input data
+ * @param target a preallocated output buffer
+ * @implNote op name='morphology.bridge', type=Computer
+ */
public static < T extends BooleanType< T > > void bridge( final RandomAccessible< T > source, final IterableInterval< T > target )
{
new Bridge().calculate( source, target );
diff --git a/src/main/java/net/imglib2/algorithm/morphology/table2d/Clean.java b/src/main/java/net/imglib2/algorithm/morphology/table2d/Clean.java
index ff3a31b97..11fe23508 100644
--- a/src/main/java/net/imglib2/algorithm/morphology/table2d/Clean.java
+++ b/src/main/java/net/imglib2/algorithm/morphology/table2d/Clean.java
@@ -65,11 +65,21 @@ protected boolean getExtendedValue()
return false;
}
+ /**
+ * @param source the input data
+ * @return a copy of {@code source}, with isolated pixels removed
+ * @implNote op name='morphology.clean'
+ */
public static < T extends BooleanType< T > > Img< T > clean( final Img< T > source )
{
return new Clean().calculate( source );
}
+ /**
+ * @param source the input data
+ * @param target a preallocated output buffer
+ * @implNote op name='morphology.clean', type=Computer
+ */
public static < T extends BooleanType< T > > void clean( final RandomAccessible< T > source, final IterableInterval< T > target )
{
new Clean().calculate( source, target );
diff --git a/src/main/java/net/imglib2/algorithm/morphology/table2d/Endpoints.java b/src/main/java/net/imglib2/algorithm/morphology/table2d/Endpoints.java
index 875d9e165..14424dd03 100644
--- a/src/main/java/net/imglib2/algorithm/morphology/table2d/Endpoints.java
+++ b/src/main/java/net/imglib2/algorithm/morphology/table2d/Endpoints.java
@@ -67,11 +67,21 @@ protected boolean getExtendedValue()
return false;
}
+ /**
+ * @param source the input data
+ * @return a copy of {@code source}, containing only the elements at the end of a skeleton
+ * @implNote op name='morphology.endpoints'
+ */
public static < T extends BooleanType< T > > Img< T > endpoints( final Img< T > source )
{
return new Endpoints().calculate( source );
}
+ /**
+ * @param source the input data
+ * @param target a preallocated output buffer
+ * @implNote op name='morphology.endpoints', type=Computer
+ */
public static < T extends BooleanType< T > > void endpoints( final RandomAccessible< T > source, final IterableInterval< T > target )
{
new Endpoints().calculate( source, target );
diff --git a/src/main/java/net/imglib2/algorithm/morphology/table2d/Fill.java b/src/main/java/net/imglib2/algorithm/morphology/table2d/Fill.java
index f81fe3265..cac11d4a6 100644
--- a/src/main/java/net/imglib2/algorithm/morphology/table2d/Fill.java
+++ b/src/main/java/net/imglib2/algorithm/morphology/table2d/Fill.java
@@ -65,11 +65,21 @@ protected boolean getExtendedValue()
return true;
}
+ /**
+ * @param source the input data
+ * @return a copy of {@code source}, with holes filled
+ * @implNote op name='morphology.fill'
+ */
public static < T extends BooleanType< T > > Img< T > fill( final Img< T > source )
{
return new Fill().calculate( source );
}
+ /**
+ * @param source the input data
+ * @param target a preallocated output buffer
+ * @implNote op name='morphology.fill', type=Computer
+ */
public static < T extends BooleanType< T > > void fill( final RandomAccessible< T > source, final IterableInterval< T > target )
{
new Fill().calculate( source, target );
diff --git a/src/main/java/net/imglib2/algorithm/morphology/table2d/Hbreak.java b/src/main/java/net/imglib2/algorithm/morphology/table2d/Hbreak.java
index 749f451c6..e18924ed9 100644
--- a/src/main/java/net/imglib2/algorithm/morphology/table2d/Hbreak.java
+++ b/src/main/java/net/imglib2/algorithm/morphology/table2d/Hbreak.java
@@ -65,11 +65,21 @@ protected boolean getExtendedValue()
return false;
}
+ /**
+ * @param source the input data
+ * @return a copy of {@code source}, with vertical bridges removed
+ * @implNote op name='morphology.hbreak'
+ */
public static < T extends BooleanType< T > > Img< T > hbreak( final Img< T > source )
{
return new Hbreak().calculate( source );
}
+ /**
+ * @param source the input data
+ * @param target a preallocated output buffer
+ * @implNote op name='morphology.hbreak', type=Computer
+ */
public static < T extends BooleanType< T > > void hbreak( final RandomAccessible< T > source, final IterableInterval< T > target )
{
new Hbreak().calculate( source, target );
diff --git a/src/main/java/net/imglib2/algorithm/morphology/table2d/Life.java b/src/main/java/net/imglib2/algorithm/morphology/table2d/Life.java
index 747a96297..90138516e 100644
--- a/src/main/java/net/imglib2/algorithm/morphology/table2d/Life.java
+++ b/src/main/java/net/imglib2/algorithm/morphology/table2d/Life.java
@@ -65,11 +65,21 @@ protected boolean getExtendedValue()
return false;
}
+ /**
+ * @param source the input data
+ * @return a copy of {@code source}, operated on by a single iteration of the Game of Life
+ * @implNote op name='morphology.life'
+ */
public static < T extends BooleanType< T > > Img< T > life( final Img< T > source )
{
return new Life().calculate( source );
}
+ /**
+ * @param source the input data
+ * @param target a preallocated output buffer
+ * @implNote op name='morphology.life', type=Computer
+ */
public static < T extends BooleanType< T > > void life( final RandomAccessible< T > source, final IterableInterval< T > target )
{
new Life().calculate( source, target );
diff --git a/src/main/java/net/imglib2/algorithm/morphology/table2d/Majority.java b/src/main/java/net/imglib2/algorithm/morphology/table2d/Majority.java
index b72484a04..887959303 100644
--- a/src/main/java/net/imglib2/algorithm/morphology/table2d/Majority.java
+++ b/src/main/java/net/imglib2/algorithm/morphology/table2d/Majority.java
@@ -66,11 +66,21 @@ protected boolean getExtendedValue()
return false;
}
+ /**
+ * @param source the input data
+ * @return an {@link Img} where each sample is equal to the majority value surrounding it in {@code source}
+ * @implNote op name='morphology.majority'
+ */
public static < T extends BooleanType< T > > Img< T > majority( final Img< T > source )
{
return new Majority().calculate( source );
}
+ /**
+ * @param source the input data
+ * @param target a preallocated output buffer
+ * @implNote op name='morphology.majority', type=Computer
+ */
public static < T extends BooleanType< T > > void majority( final RandomAccessible< T > source, final IterableInterval< T > target )
{
new Majority().calculate( source, target );
diff --git a/src/main/java/net/imglib2/algorithm/morphology/table2d/Remove.java b/src/main/java/net/imglib2/algorithm/morphology/table2d/Remove.java
index fd4e8b2b2..16beab357 100644
--- a/src/main/java/net/imglib2/algorithm/morphology/table2d/Remove.java
+++ b/src/main/java/net/imglib2/algorithm/morphology/table2d/Remove.java
@@ -66,11 +66,21 @@ protected boolean getExtendedValue()
return false;
}
+ /**
+ * @param source the input data
+ * @return a copy of {@code source}, keeping only the perimeter of solid objects.
+ * @implNote op name='morphology.outline'
+ */
public static < T extends BooleanType< T > > Img< T > remove( final Img< T > source )
{
return new Remove().calculate( source );
}
+ /**
+ * @param source the input data
+ * @param target a prallocated output buffer
+ * @implNote op name='morphology.outline', type=Computer
+ */
public static < T extends BooleanType< T > > void remove( final RandomAccessible< T > source, final IterableInterval< T > target )
{
new Remove().calculate( source, target );
diff --git a/src/main/java/net/imglib2/algorithm/morphology/table2d/Spur.java b/src/main/java/net/imglib2/algorithm/morphology/table2d/Spur.java
index 255b0e8c7..cf2d8f6e8 100644
--- a/src/main/java/net/imglib2/algorithm/morphology/table2d/Spur.java
+++ b/src/main/java/net/imglib2/algorithm/morphology/table2d/Spur.java
@@ -57,11 +57,21 @@
*/
public class Spur
{
+ /**
+ * @param source the input data
+ * @return a copy of {@code source}, with spurs removed
+ * @implNote op name='morphology.spur'
+ */
public static < T extends BooleanType< T > > Img< T > spur( final Img< T > source )
{
return new Spur2().calculate( new Spur1().calculate( source ) );
}
+ /**
+ * @param source the input data
+ * @param target a preallocated output buffer
+ * @implNote op name='morphology.spur', type=Computer
+ */
public static < T extends BooleanType< T > > void spur( final RandomAccessible< T > source, final IterableInterval< T > target )
{
final T extendedVal = target.firstElement().createVariable();
diff --git a/src/main/java/net/imglib2/algorithm/morphology/table2d/Thicken.java b/src/main/java/net/imglib2/algorithm/morphology/table2d/Thicken.java
index 0a807d938..86234d288 100644
--- a/src/main/java/net/imglib2/algorithm/morphology/table2d/Thicken.java
+++ b/src/main/java/net/imglib2/algorithm/morphology/table2d/Thicken.java
@@ -72,11 +72,21 @@ protected boolean getExtendedValue()
return false;
}
+ /**
+ * @param source the input data
+ * @return a copy of {@code source}, where uniquely labeled objects are thickened
+ * @implNote op name='morphology.thicken'
+ */
public static < T extends BooleanType< T > > Img< T > thicken( final Img< T > source )
{
return new Thicken().calculate( source );
}
+ /**
+ * @param source the input data
+ * @param target a preallocated output buffer
+ * @implNote op name='morphology.thicken', type=Computer
+ */
public static < T extends BooleanType< T > > void thicken( final RandomAccessible< T > source, final IterableInterval< T > target )
{
new Thicken().calculate( source, target );
diff --git a/src/main/java/net/imglib2/algorithm/morphology/table2d/Thin.java b/src/main/java/net/imglib2/algorithm/morphology/table2d/Thin.java
index fa6e28cf1..694f83d35 100644
--- a/src/main/java/net/imglib2/algorithm/morphology/table2d/Thin.java
+++ b/src/main/java/net/imglib2/algorithm/morphology/table2d/Thin.java
@@ -71,11 +71,21 @@
*/
public class Thin
{
+ /**
+ * @param source the input data
+ * @return a copy of {@code source}, with lines in the image being thinned
+ * @implNote op name='morphology.thin'
+ */
public static < T extends BooleanType< T > > Img< T > thin( final Img< T > source )
{
return new Thin2().calculate( new Thin1().calculate( source ) );
}
+ /**
+ * @param source the input data
+ * @param target a preallocated output buffer
+ * @implNote op name='morphology.thin', type=Computer
+ */
public static < T extends BooleanType< T > > void thin( final RandomAccessible< T > source, final IterableInterval< T > target )
{
final T extendedVal = target.firstElement().createVariable();
diff --git a/src/main/java/net/imglib2/algorithm/morphology/table2d/Vbreak.java b/src/main/java/net/imglib2/algorithm/morphology/table2d/Vbreak.java
index 56ccc85e0..657b249d6 100644
--- a/src/main/java/net/imglib2/algorithm/morphology/table2d/Vbreak.java
+++ b/src/main/java/net/imglib2/algorithm/morphology/table2d/Vbreak.java
@@ -65,11 +65,21 @@ protected boolean getExtendedValue()
return false;
}
+ /**
+ * @param source the input data
+ * @return a copy of {@code source}, with horizontal bridges removed
+ * @implNote op name='morphology.vbreak'
+ */
public static < T extends BooleanType< T > > Img< T > vbreak( final Img< T > source )
{
return new Vbreak().calculate( source );
}
+ /**
+ * @param source the input data
+ * @param target a preallocated output buffer
+ * @implNote op name='morphology.vbreak', type=Computer
+ */
public static < T extends BooleanType< T > > void vbreak( final RandomAccessible< T > source, final IterableInterval< T > target )
{
new Vbreak().calculate( source, target );
diff --git a/src/main/java/net/imglib2/algorithm/stats/Max.java b/src/main/java/net/imglib2/algorithm/stats/Max.java
index c470c37e7..c988e15d2 100644
--- a/src/main/java/net/imglib2/algorithm/stats/Max.java
+++ b/src/main/java/net/imglib2/algorithm/stats/Max.java
@@ -46,11 +46,12 @@ public class Max
{
/**
* Find the maximum value and its position in an {@link IterableInterval}.
- *
+ *
* @param iterable
* input interval.
* @return a cursor positioned on the global maximum. If several maxima with
* the same value exist, the cursor is on the first one.
+ * @implNote op name='stats.max', type=Function
*/
public static < T extends Comparable< T > > Cursor< T > findMax( final IterableInterval< T > iterable )
{
diff --git a/src/main/java/net/imglib2/algorithm/stats/Min.java b/src/main/java/net/imglib2/algorithm/stats/Min.java
index 8d8a077cf..574de67d1 100644
--- a/src/main/java/net/imglib2/algorithm/stats/Min.java
+++ b/src/main/java/net/imglib2/algorithm/stats/Min.java
@@ -46,7 +46,8 @@ public class Min
{
/**
* Find the minimum value and its position in an {@link IterableInterval}.
- *
+ *
+ * @implNote op name='stats.min', type=Function
* @param iterable
* input interval.
* @return a cursor positioned on the global minimum. If several minima with
diff --git a/src/main/java/net/imglib2/algorithm/stats/Normalize.java b/src/main/java/net/imglib2/algorithm/stats/Normalize.java
index b7c0e7433..912ca505d 100644
--- a/src/main/java/net/imglib2/algorithm/stats/Normalize.java
+++ b/src/main/java/net/imglib2/algorithm/stats/Normalize.java
@@ -42,7 +42,8 @@ public class Normalize
{
/**
* Normalize values of an {@link IterableInterval} to the range [min, max].
- *
+ *
+ * @implNote op name='image.normalize', type=Inplace1
* @param iterable
* the interval to be normalized.
* @param min