vol_label_color_flicker — VOLCOLOR 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"))

Verwendung

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).

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.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

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

• voxel_labels_color — py -3.11 examples/voxel_labels_color.py

Typkompatible Folge-Operatoren (nehmen table als Eingabe)

—

Gleiche Kategorie (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.