render op• Data kinds: labels → table
• Call: import volcolor; volcolor.vol_labels_to_meshes(labels, ids=None, spacing=None, seed: 'int' = 0, level: 'float' = 0.5, axes: 'str' = 'xyz') (or opsvolcolor.get("vol_labels_to_meshes"))
Run marching cubes per component, giving a set of coloured meshes.
> The detailed description below is the original text — the summary and the headings are translated.
返りは `list[dict]、各要素が `{"label", "vertices" (nv, 3) float64,
"faces" (nf, 3) int64, "color" (r, g, b)}``。色は
:func:vol_colorize_labels と同じパレットなので、**断面図と 3-D 表示で同じ
部品が同じ色**になる。
成分ごとに bbox を 1 ボクセル分パディングした部分体だけを切り出して
marching cubes を回す(全ボリュームを成分数だけ舐めない)。パディングは
ボリューム端に接する成分の面を閉じるためで、これをしないと端の成分だけ
穴の開いたメッシュになる。
`axes`:
• `"xyz"(既定)―― 頂点を (x, y, z) で返す。:mod:render3d` /
:mod:mesh の頂点順がこれで、`render3d.render_mesh` へ直接渡せる。
• `"zyx" ―― ボリュームの添字順のまま返す。:func:vol_label_shape_stats`
の `centroid` と同じ並びになる。
黙って取り違えると例外は出ない ―― 出るのは上下と前後が入れ替わった、
それらしい絵である。`tests/test_volcolor.py::test_mesh_axes_order_is_explicit` が
両方の重心を stats の重心と突き合わせて固定している。
*spacing* を渡すと頂点は物理座標(mm)になる。*ids* で成分を絞れる
(`None なら実在する全ラベル、ただし :data:MAX_MESHES` 件まで)。
Raises `ImportError (with the pip install scikit-image` message) when
marching cubes is unavailable, and `ValueError` for a bad *axes*, a *level*
outside `(0, 1)`, an *ids* naming an absent label, or more than
:data:MAX_MESHES components.
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• voxel_labels_color — py -3.11 examples/voxel_labels_color.py
table as input)—
render)*Provenance: volcolor.py — VOLCOLOR operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.