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
processingTime
errorMessage, 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() |
getProcessingTime
getErrorMessage, getNumThreads, setNumThreads, setNumThreads
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getErrorMessage
@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 Algorithm
Copyright © 2015–2022 ImgLib2. All rights reserved.