region_props — 3D regionprops op

• Datenarten: voxel → table

• Aufruf: import fullseye as fs; fs.ledger.region_props(vol, connectivity: 'int' = 26) -> 'list[dict]' (die Implementierung direkt: import regionprops3d; regionprops3d.region_props(vol, connectivity: 'int' = 26) -> 'list[dict]'; aus dem Register: ops3d.get("region_props"))

Verwendung

Liefert die Liste der Regioneneigenschaften jeder Zusammenhangskomponente.

Parameters

vol : array_like

3D-Array aus bool oder 0/1.

connectivity : int

6 / 18 / 26.

Returns

list[dict]

Ein dict pro Komponente. Schlüssel:

• label : Labelnummer (int)

• volume : Voxelanzahl (int)

• centroid : Schwerpunkt (z, y, x) als tuple (float)

• bbox : (z0, y0, x0, z1, y1, x1). z1/y1/x1 sind exklusive Obergrenzen (stop)

• extent : volume / bbox-Volumen (Füllgrad, 0..1)

• principal_axes : (3,3) Hauptachsenvektoren (Zeilen, Eigenwerte absteigend)

• principal_lengths: (3,) Hauptachsenlängen = Quadratwurzeln der Eigenwerte der Koordinatenkovarianz (absteigend)

• equivalent_radius: Radius der äquivalenten Kugel (3V/4π)^(1/3)

• surface_area : Näherung durch Zählen freiliegender Flächen (in Voxelflächen-Einheiten)

• sphericity : Oberfläche der volumengleichen Kugel / tatsächliche Oberfläche (nahe 1 bei einer Kugel, wegen Diskretisierung <1)

Leere Liste, wenn es keine Vordergrundvoxel gibt (oder die Eingabe leer ist).

Ergänzung:

• Alle Größen sind in Voxeleinheiten (keine Abstandskorrektur). Für physische Maße volume mit dem voxel-Volumen und centroid / bbox / principal_lengths mit dem Abstand jeder Achse multiplizieren (bei anisotropen Abständen werden die Hauptachsenrichtungen verzerrt).

• principal_lengths sind die Quadratwurzeln der Eigenwerte der Populationskovarianz der Koordinaten (geteilt durch N), also Standardabweichungen der Koordinaten, nicht Radien der Komponente. Bei einer Komponente aus 1 Voxel ist principal_axes die Einheitsmatrix und principal_lengths alles 0.

• surface_area zählt auch Flächen am Array-Rand (Null-padding). Wegen der Diskretisierung liegt sphericity selbst bei einer Kugel höchstens bei etwa 0.66 (siehe Modul-docstring).

• Die Labels sind in der Reihenfolge 1..n (dieselbe scipy-Abtastreihenfolge wie label_components), nicht nach Volumen. Sortieren muss der Aufrufer.

• Die Eingabe wird mit allem außer 0 als Vordergrund in bool umgewandelt (auch NaN ist Vordergrund). Raises ValueError: Eingabe nicht 3-dimensional, connectivity ungleich 6/18/26.

Hintergrundwissen (Physik und Konventionen hinter diesem Operator)

• measurement_uncertainty — Messunsicherheit und Kalibrierung — was nötig ist, um zu behaupten, dass man misst

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)

• region_props_3d — py -3.11 examples_3d/region_props_3d.py

Typkompatible Folge-Operatoren (nehmen table als Eingabe)

fuse_to_voxel · mesh_select_lod

Gleiche Kategorie (regionprops)

label_components · largest_component · filter_by_volume · inner_box3 · vol_label · vol_region_props


*Provenance: regionprops3d.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.