vol_labels_to_meshes — VOLCOLOR render op

• 데이터 종류: labels → table

• 호출: 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')(구현을 직접 호출하려면 import volcolor; volcolor.vol_labels_to_meshes(labels, ids=None, spacing=None, seed: 'int' = 0, level: 'float' = 0.5, axes: 'str' = 'xyz'), 원장에서 가져오려면 opsvolcolor.get("vol_labels_to_meshes"))

사용법

성분마다 marching cubes 를 걸어 색이 입혀진 메시의 집합으로 만듭니다.

반환은 list[dict], 각 요소가 {"label", "vertices" (nv, 3) float64, "faces" (nf, 3) int64, "color" (r, g, b)}. 색은 vol_colorize_labels 와 같은 팔레트이므로, 단면도와 3-D 표시에서 같은부품이 같은 색이 된다.

성분마다 bbox 를 1 복셀만큼 패딩한 부분 볼륨만을 잘라내어 marching cubes 를 돌린다(전체 볼륨을 성분 수만큼 훑지 않는다). 패딩은볼륨 끝에 닿는 성분의 면을 닫기 위한 것으로, 이것을 하지 않으면 끝의 성분만구멍 뚫린 메시가 된다.

axes:

• "xyz"(기본값) ―― 꼭짓점을 (x, y, z) 로 반환한다. render3d / mesh 의 꼭짓점 순서가 이것이며, render3d.render_mesh 로 바로 넘길 수 있다.

• "zyx" ―― 볼륨의 첨자 순서 그대로 반환한다. vol_label_shape_stats 의 centroid 와 같은 순서가 된다.

조용히 혼동해도 예외는 나지 않는다 ―― 나오는 것은 위아래와 앞뒤가 뒤바뀐,

그럴듯한 그림이다. tests/test_volcolor.py::test_mesh_axes_order_is_explicit 가

양쪽의 무게중심을 stats 의 무게중심과 맞대어 고정하고 있다.

*spacing* 을 넘기면 꼭짓점은 물리 좌표(mm)가 된다. *ids* 로 성분을 좁힐 수 있다(None 이면 실재하는 모든 라벨, 단 MAX_MESHES 건까지).

marching cubes 를 쓸 수 없을 때 ImportError(pip install scikit-image 안내 포함)를 내고, 잘못된 *axes*, (0, 1) 밖의 *level*, 없는 라벨을 지정한 *ids*, 또는 MAX_MESHES 개를 넘는 성분에 대해 ValueError 를 낸다.

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• voxel_labels_color — py -3.11 examples/voxel_labels_color.py

타입이 이어지는 다음 연산자(table 를 입력으로 받는 것)

—

같은 카테고리(render)

vol_label_volume_render


*Provenance: volcolor.py — VOLCOLOR 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.