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"))
Liefert die Liste der Regioneneigenschaften jeder Zusammenhangskomponente.
vol : array_like
3D-Array aus bool oder 0/1.
connectivity : int
6 / 18 / 26.
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.
• measurement_uncertainty — Messunsicherheit und Kalibrierung — was nötig ist, um zu behaupten, dass man misst
• 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.
• region_props_3d — py -3.11 examples_3d/region_props_3d.py
table als Eingabe)fuse_to_voxel · mesh_select_lod
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.