vol_orientation_coherence — 3D feature op

Data kinds: voxelvoxel

Call: import fullseye as fs; fs.ledger.vol_orientation_coherence(vol, sigma=1.0, rho=3.0) (to call the implementation directly, import volops; volops.vol_orientation_coherence(vol, sigma=1.0, rho=3.0); from the registry, ops3d.get("vol_orientation_coherence"))

Usage

How strongly the local structure points one way (3-D structure tensor).

Builds `J = G_rho * (grad I)(grad I)^T` and returns

(l1 - l3) / (l1 + l2 + l3), l1 >= l2 >= l3

in `[0, 1]: 1` where one direction dominates (a fibre, a lamella edge,

a crack face), `0` where the gradient is isotropic (a uniform block, white

noise) or where two directions are equally strong. *sigma* smooths before

differentiating (so noise is not differentiated into structure); *rho* is the

integration width — make it larger than the spacing of the structure you are

measuring.

HALCON computes this tensor and throws it away: `coherence_enhancing_diff`

uses it to steer a diffusion but exposes neither the orientation nor the

coherence. Returning the measurement is the point of this operator.

Applicability. (1) `rho` too small collapses the tensor to rank 1 and

the answer sticks at 1 everywhere — that is *not* perfect alignment, it is a

failure to measure. (2) Two fibre families crossing at equal strength read

as 0, indistinguishable from a uniform block; pair it with `vol_local_std`

to tell "no direction" from "no structure". (3) Voxels whose tensor trace is

below `1e-6` of the volume maximum return 0.

Returns a `(D, H, W) float64 volume in [0, 1]`.

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

Runnable examples (verified samples that actually call this op)

ct_porosity_and_fibre_morphometrypy -3.11 examples_3d/ct_porosity_and_fibre_morphometry.py

Ops the type connects to (they accept voxel as input)

voxel_to_mips · voxel_to_mesh · signed_distance_field · to_points · sobel3d · hessian3d · curvature_maps · edt_jfa

Same category (feature)

sobel3d · hessian3d · curvature_maps · edt_jfa · vol_frangi · vol_local_std · vol_local_thickness · vol_euler_number


*Provenance: volops.py — 3D operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.