diagnose op• Datenarten: voxel → table
• Aufruf: import fullseye as fs; fs.ledger.vol_label_color_flicker(vol_binary, axis='z', seed: 'int' = 0, connectivity: 'int' = 26, connectivity_2d: 'int' = 8) (die Implementierung direkt: import volcolor; volcolor.vol_label_color_flicker(vol_binary, axis='z', seed: 'int' = 0, connectivity: 'int' = 26, connectivity_2d: 'int' = 8); aus dem Register: opsvolcolor.get("vol_label_color_flicker"))
Zählt den Unterschied zwischen „erst segmentieren, dann einfärben“ und „erst einfärben, dann segmentieren“.
Auf demselben 2-wertigen (binären) Volumen werden 2 Verfahren durchlaufen:
A. Je Schicht -- jeder Schnitt wird in 2-D nach Zusammenhangskomponenten gelabelt und
mit derselben Palette wie imgio.colorize_labels gefärbt.
Die Nummern werden je Schnitt neu vergeben, daher kann selbst dasselbe Teil die Farbe wechseln, wenn die Schicht wechselt.
B. Am Volumen -- mit volops.vol_label labeln, dann
mit vol_colorize_labels färben und danach schneiden.
Rückgabe ist ein dict:
n_components Anzahl der 3-D-Komponenten · n_slices Anzahl der Schnitte ·
slices_with_change Anzahl der Schnitte, in denen unter A die Farbe mindestens 1 Komponente wechselte ·
changed_pairs Anzahl der (Komponente, Schnitt)-Paare mit Farbwechsel unter A ·
changed_components Anzahl der Komponenten, die unter A mindestens einmal die Farbe wechselten ·
volume_slices_with_change / volume_changed_pairs /
volume_changed_components dieselben Größen für B (konstruktionsbedingt 0) ·
pairs_checked Gesamtzahl der verglichenen (Komponente, Schnitt)-Paare ·
flicker_rate changed_pairs / pairs_checked.
Definition des Vergleichs: Für jede 3-D-Komponente c ist die Farbe im ersten Schnitt, in dem c vorkommt, die Referenz; weicht in einem späteren Schnitt die häufigste Farbe der Pixel von c davon ab, zählt das als 1 (1 3-D-Komponente kann in 1 Schnitt in mehrere 2-D-Stücke zerfallen, daher ist der Repräsentant die häufigste Farbe; bei Gleichstand die in RGB-lexikografischer Ordnung kleinere = deterministisch).
Gemessen ((24, 48, 48), Referenzphantom aus 16 Kugeln, seed=0, axis="z", connectivity=26 / connectivity_2d=8): pairs_checked=108, slices_with_change=20 / 24, changed_pairs=62 (57.4 %), changed_components=16 / 16. Auf Seite B sind alle 3 gleich 0 -- konstruktionsbedingt 0, nicht zufällig 0 (weil die Labelnummern im ganzen Volumen eindeutig sind).
Löst ValueError aus bei ungültigem Volumen, unbekannter *axis* oder einer *connectivity*, die nicht 6 / 18 / 26 ist (2-D: 4 / 8).
• 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.
• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.
• voxel_labels_color — py -3.11 examples/voxel_labels_color.py
table als Eingabe)—
diagnose)—
*Provenance: volcolor.py — VOLCOLOR 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.