vol_labels_to_meshes — VOLCOLOR render op

• Datenarten: labels → table

• Aufruf: import fullseye as fs; fs.ledger.vol_labels_to_meshes(labels, ids=None, spacing=None, seed: 'int' = 0, level: 'float' = 0.5, axes: 'str' = 'xyz') (die Implementierung direkt: import volcolor; volcolor.vol_labels_to_meshes(labels, ids=None, spacing=None, seed: 'int' = 0, level: 'float' = 0.5, axes: 'str' = 'xyz'); aus dem Register: opsvolcolor.get("vol_labels_to_meshes"))

Verwendung

Führt Marching Cubes pro Komponente aus und liefert eine Menge eingefärbter Meshes.

Liefert list[dict], jedes Element ist {"label", "vertices" (nv, 3) float64, "faces" (nf, 3) int64, "color" (r, g, b)}. Die Farben stammen aus derselben Palette wie bei vol_colorize_labels, daher hat dasselbe Teil in Schnittbildern und in der 3-D-Darstellung dieselbe Farbe.

Je Komponente wird nur das um 1 Voxel gepolsterte Teilvolumen der bbox ausgeschnitten und darauf marching cubes ausgeführt (das ganze Volumen wird nicht einmal pro Komponente durchlaufen). Die Polsterung schließt die Flächen von Komponenten, die den Volumenrand berühren; ohne sie würden nur die Randkomponenten zu Meshes mit Löchern.

axes:

• "xyz" (Standard) -- liefert die Eckpunkte als (x, y, z). Das ist die Eckpunktreihenfolge von render3d / mesh, sie können direkt an render3d.render_mesh übergeben werden.

• "zyx" -- liefert sie in der Indexreihenfolge des Volumens. Das entspricht der Reihenfolge von centroid in vol_label_shape_stats.

Eine stille Verwechslung löst keine Ausnahme aus -- heraus kommt ein plausibles Bild, in dem Oben/Unten und Vorne/Hinten

vertauscht sind. tests/test_volcolor.py::test_mesh_axes_order_is_explicit

fixiert das, indem es beide Schwerpunkte mit den Schwerpunkten der stats abgleicht.

Mit *spacing* liegen die Eckpunkte in physikalischen Koordinaten (mm). Mit *ids* lassen sich die Komponenten eingrenzen (None heißt alle vorhandenen Labels, aber höchstens MAX_MESHES).

Löst ImportError (mit dem Hinweis pip install scikit-image) aus, wenn marching cubes nicht verfügbar ist, und ValueError bei ungültigem *axes*, einem *level* außerhalb von (0, 1), bei *ids*, die ein nicht vorhandenes Label nennen, oder bei mehr als MAX_MESHES Komponenten.

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 (render)

vol_label_volume_render


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