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.Flavor
NAME
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, setOutput
ops, setEnvironment
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
ops, setEnvironment
calculate, calculate, createOutput, getIndependentInstance, run, run
compute
in, setInput
run
setOutput
candidates, filterArity, op
initialize
public boolean conforms()
conforms
in interface Contingent
public void compute(RandomAccessibleInterval<B> rai, DoubleType output)
UnaryComputerOp
compute
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 input
public DoubleType createOutput(RandomAccessibleInterval<B> input)
UnaryOutputFactory
createOutput
in interface UnaryOutputFactory<RandomAccessibleInterval<B extends BooleanType<B>>,DoubleType>
input
- which determines how to create the outputCopyright © 2014–2022 ImageJ. All rights reserved.