fullseye

vol_granulometry — 3D feature op

使い方

Pore / particle size distribution of a binary volume (opening series).

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 the median of foreground local-thickness values; it is not quantised to or interpolated from the requested radius steps.

HALCON has no granulometry operator.

Empty input (vol_binary with 0 elements) raises ValueError.

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(measurement を入力に取れる)

vol_gaussian_psf · fuse_to_voxel · fresnel_reflectance · snell_angle

同カテゴリ(feature)

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


Provenance: volops.py — 3D operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

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