public class DifferenceOfGaussian extends Object
RandomAccessible
.Constructor and Description |
---|
DifferenceOfGaussian() |
Modifier and Type | Method and Description |
---|---|
static double |
computeMinIsotropicSigma(double imageSigma,
double minf,
double[] pixelSize)
Helper function to compute the minimum sigma that can be given to
computeSigmas(double, double, double[], double, double) while
still achieving isotropic smoothed images. |
static double[][] |
computeSigmas(double imageSigma,
double minf,
double[] pixelSize,
double sigma1,
double sigma2)
Helper function to compute per-dimension sigmas in pixel coordinates.
|
static <I extends NumericType<I>,T extends NumericType<T> & NativeType<T>> |
DoG(double[] sigmaSmaller,
double[] sigmaLarger,
RandomAccessible<I> input,
RandomAccessible<T> tmp,
RandomAccessibleInterval<T> dog,
ExecutorService service)
Compute the difference of Gaussian for the input.
|
static <I extends NumericType<I>,T extends NumericType<T> & NativeType<T>> |
DoG(double[] sigmaSmaller,
double[] sigmaLarger,
RandomAccessible<I> input,
RandomAccessibleInterval<T> dog,
ExecutorService service)
Compute the difference of Gaussian for the input.
|
public static <I extends NumericType<I>,T extends NumericType<T> & NativeType<T>> void DoG(double[] sigmaSmaller, double[] sigmaLarger, RandomAccessible<I> input, RandomAccessibleInterval<T> dog, ExecutorService service)
sigmaLarger > sigmaSmaller
).
Creates an appropriate temporary image and calls
DoG(double[], double[], RandomAccessible, RandomAccessible, RandomAccessibleInterval, ExecutorService)
.
sigmaSmaller
- stddev (in every dimension) of smaller Gaussian.sigmaLarger
- stddev (in every dimension) of larger Gaussian.input
- the input image extended to infinity (or at least covering the
same interval as the dog result image, plus borders for
convolution).dog
- the Difference-of-Gaussian result image.service
- service providing threads for multi-threadingpublic static <I extends NumericType<I>,T extends NumericType<T> & NativeType<T>> void DoG(double[] sigmaSmaller, double[] sigmaLarger, RandomAccessible<I> input, RandomAccessible<T> tmp, RandomAccessibleInterval<T> dog, ExecutorService service)
sigmaSmaller
- stddev (in every dimension) of smaller Gaussian.sigmaLarger
- stddev (in every dimension) of larger Gaussian.input
- the input image extended to infinity (or at least covering the
same interval as the dog result image, plus borders for
convolution).tmp
- temporary image, must at least cover the same interval as the
dog result image.dog
- the Difference-of-Gaussian result image.service
- how many threads to use for the computation.public static double[][] computeSigmas(double imageSigma, double minf, double[] pixelSize, double sigma1, double sigma2)
sigma1
and sigma2
specify desired
sigmas (scale) in image coordinates. Taking into account the sigma of the
input image as well as the image calibration, the resulting sigma arrays
specifiy the smoothing that has to be applied to achieve the desired
sigmas.imageSigma
- estimated sigma of the input image, in pixel coordinates.minf
- multiple of the imageSigma
that smoothing with
the resulting sigma must at least achieve.pixelSize
- calibration. Dimensions of a pixel in image units.sigma1
- desired sigma in image coordinates.sigma2
- desired sigma in image coordinates.double[2][numDimensions]
, array of two arrays
contains resulting sigmas for sigma1, sigma2.public static double computeMinIsotropicSigma(double imageSigma, double minf, double[] pixelSize)
computeSigmas(double, double, double[], double, double)
while
still achieving isotropic smoothed images.Copyright © 2015–2022 ImgLib2. All rights reserved.