public class EulerCharacteristic26NFloating<B extends BooleanType<B>> extends AbstractUnaryHybridCF<RandomAccessibleInterval<B>,DoubleType> implements Ops.Topology.EulerCharacteristic26NFloating, Contingent
The Op calculates χ by using the triangulation algorithm described by Toriwaki & Yonekura (see below).
There it's calculated X = ∑Δχ(V), where V is a 2x2x2 neighborhood around each point in the 3D space.
We are using the 26-neighborhood version of the algorithm. The Δχ(V) values here are predetermined.
For the algorithm see
Toriwaki J, Yonekura T (2002)
Euler Number and Connectivity Indexes of a Three Dimensional Digital Picture
Forma 17: 183-209
http://www.scipress.org/journals/forma/abstract/1703/17030183.html
For the Betti number definition of Euler characteristic see
Odgaard A, Gundersen HJG (1993)
Quantification of connectivity in cancellous bone, with special emphasis on 3-D reconstructions
Bone 14: 173-182
doi:10.1016/8756-3282(93)90245-6
SpecialOp.FlavorNAME| Constructor and Description |
|---|
EulerCharacteristic26NFloating() |
| Modifier and Type | Method and Description |
|---|---|
void |
compute(RandomAccessibleInterval<B> rai,
DoubleType output)
Computes the output given some input.
|
boolean |
conforms()
The algorithm is defined only for 3D images
|
DoubleType |
createOutput(RandomAccessibleInterval<B> input)
Create an output object given some input.
|
in, out, setInput, setOutputops, setEnvironmentclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitops, setEnvironmentcalculate, calculate, createOutput, getIndependentInstance, run, runcomputein, setInputrunsetOutputcandidates, filterArity, opinitializepublic boolean conforms()
conforms in interface Contingentpublic void compute(RandomAccessibleInterval<B> rai, DoubleType output)
UnaryComputerOpcompute in interface UnaryComputerOp<RandomAccessibleInterval<B extends BooleanType<B>>,DoubleType>rai - Argument to the computation, which must be non-nulloutput - Object where the computation's result will be stored, which
must be non-null and a different object than inputpublic DoubleType createOutput(RandomAccessibleInterval<B> input)
UnaryOutputFactorycreateOutput in interface UnaryOutputFactory<RandomAccessibleInterval<B extends BooleanType<B>>,DoubleType>input - which determines how to create the outputCopyright © 2014–2022 ImageJ. All rights reserved.