T - public class MomentOfInertiaTensor2D<T extends RealType<T>> extends MultiThreadedBenchmarkAlgorithm implements OutputAlgorithm<Img<FloatType>>
A neighborhood of a given scale is inspected at each pixel location, and the
moment of inertia are calculated. This yields a 2x2 real
symmetric matrix [ Ixx Ixy ; Ixy Iyy ] that can be diagonalized
to find the preferred directions of the local linear structures. The
eigenvalues and eigenvectors are then used to build a diffusion tensor that
privileges diffusion only in the direction of the structures, and that can be
used elsewhere in a anisotropic diffusion scheme. Here we implement the idea
outlined in the following paper:
Nonlinear anisotropic diffusion filtering of three-dimensional image data from two-photon microscopy Philip. J. Broser, R. Schulte, S. Lang, A. Roth Fritjof, Helmchen, J. Waters, Bert Sakmann, and G. Wittum, J. Biomed. Opt. 9, 1253 (2004), DOI:10.1117/1.1806832
This class limits itself to build a 2D tensor. The source image needs not to
be 2D, but only a 2D neighborhood will be iterated to compute moment of
inertia. Therefore the later will be made of only 3 components at each point:
Dxx, Dxy, Dyy
processingTimeerrorMessage, numThreads| Constructor and Description |
|---|
MomentOfInertiaTensor2D(Img<T> input,
int scale)
Deprecated.
Use
MomentOfInertiaTensor2D(RandomAccessibleInterval, ImgFactory, int)
and specify the ImgFactory<Float> for the output. |
MomentOfInertiaTensor2D(Img<T> input,
int scale,
double epsilon_1,
double epsilon_2)
Deprecated.
Use
MomentOfInertiaTensor2D(RandomAccessibleInterval, ImgFactory, int, double, double)
and specify the ImgFactory<Float> for the output. |
MomentOfInertiaTensor2D(RandomAccessibleInterval<T> input,
ImgFactory<FloatType> imgFactory,
int scale) |
MomentOfInertiaTensor2D(RandomAccessibleInterval<T> input,
ImgFactory<FloatType> imgFactory,
int scale,
double epsilon_1,
double epsilon_2) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
checkInput() |
Img<FloatType> |
getResult() |
boolean |
process() |
getProcessingTimegetErrorMessage, getNumThreads, setNumThreads, setNumThreadsclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetErrorMessage@Deprecated public MomentOfInertiaTensor2D(Img<T> input, int scale, double epsilon_1, double epsilon_2)
MomentOfInertiaTensor2D(RandomAccessibleInterval, ImgFactory, int, double, double)
and specify the ImgFactory<Float> for the output.ArrayImgFactory<FloatType>.input - scale - epsilon_1 - epsilon_2 - @Deprecated public MomentOfInertiaTensor2D(Img<T> input, int scale)
MomentOfInertiaTensor2D(RandomAccessibleInterval, ImgFactory, int)
and specify the ImgFactory<Float> for the output.input - scale - public MomentOfInertiaTensor2D(RandomAccessibleInterval<T> input, ImgFactory<FloatType> imgFactory, int scale)
public MomentOfInertiaTensor2D(RandomAccessibleInterval<T> input, ImgFactory<FloatType> imgFactory, int scale, double epsilon_1, double epsilon_2)
public boolean checkInput()
checkInput in interface AlgorithmCopyright © 2015–2022 ImgLib2. All rights reserved.