vol_granulometry — 3D feature op

Datenarten: voxelmeasurement

Aufruf: import fullseye as fs; fs.ledger.vol_granulometry(vol_binary, radii=None, spacing=None) (die Implementierung direkt: import volops; volops.vol_granulometry(vol_binary, radii=None, spacing=None); aus dem Register: ops3d.get("vol_granulometry"))

Rückgabewert über das Register: fullseye.ledger.vol_granulometry(...) liefert **nur den Wert des deklarierten Out-Typs measurement** (die zugrunde liegende Funktion gibt zusätzlich Hilfsinformationen zurück). Wird das Verworfene gebraucht, nutze fullseye.ledger.vol_granulometry.raw(...) oder rufe volops.vol_granulometry direkt auf.

• Rückgabe der Funktion: 中央径

Verwendung

Größenverteilung von Poren bzw. Partikeln eines Binärvolumens (Öffnungsreihe).

> Die ausführliche Beschreibung unten ist der Originaltext — Zusammenfassung und Überschriften sind übersetzt.

Opening by a ball of radius `r deletes every feature narrower than 2r`.

Tracking the surviving volume fraction as `r` grows gives the cumulative

size distribution `F(r)`; its negative increment is the size density — the

fraction of material that sits in features of that size. This is Matheron's

granulometry, the measurement behind every "pore size distribution" plot in

casting, foam and powder work.

Computed from the local-thickness volume rather than by repeated openings:

the two agree exactly (a voxel survives the opening of radius `r` iff its

local thickness is at least `2r`) and one distance transform replaces N

morphological passes.

*radii* are in the units of *spacing* (millimetres when *spacing* is given,

voxels otherwise); leave it `None for min(spacing)`-steps up to the

largest thickness present. Returns ``{"radii": [...], "surviving_fraction":

[...], "density": [...], "mean_size": float, "d50": float, "units": "mm"|"voxel"}``

where sizes are diameters (`2r`), because that is what a pore diameter

means.

Applicability. (1) A distribution is only as good as the threshold that

made the binary volume — report it. (2) Features touching the volume border

are truncated and bias the distribution downward; crop or state it.

(3) `d50` is interpolated between the two bracketing radii, so it is no

finer than the radius step.

HALCON has no granulometry operator.

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

ct_porosity_and_fibre_morphometrypy -3.11 examples_3d/ct_porosity_and_fibre_morphometry.py

Typkompatible Folge-Operatoren (nehmen measurement als Eingabe)

vol_gaussian_psf · fuse_to_voxel · fresnel_reflectance · snell_angle

Gleiche Kategorie (feature)

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


*Provenance: volops.py — 3D Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

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