to_points — 3D transform op

• 데이터 종류: voxel × points × mesh × depth × gaussians → points

• 호출: import fullseye as fs; fs.ledger.to_points(data, kind, samples=20000, **kw)(구현을 직접 호출하려면 import fuse3d; fuse3d.to_points(data, kind, samples=20000, **kw), 원장에서 가져오려면 ops3d.get("to_points"))

사용법

임의의 3D 구조 → 점군(공통 표현). 5 개 구조 전부를 하나의 입구로 통합.

kind: "points"(N,3) / "mesh"=(vertices,faces) / "depth"=depth+{fx,fy,cx,cy[,stride]} /

"voxel"=밀도 grid+{iso} / "3dgs"=means(N,3).

kind별 변환(구현대로):

• "points" / "3dgs": np.asarray(data, float)를 반환할 뿐(형태 검사는하지 않는다. (N, 3)을 넘기는 것은 호출 측의 책임).

• "mesh": data = (vertices, faces). match3d.mesh_to_points로 면적 가중의균일 샘플링을 samples점(기본값 20000, seed 고정 = 결정적).

• "depth": data는 깊이 맵 (H, W), kw에 fx, fy, cx, cy가 필수(없으면 KeyError), stride는 임의(기본값 1, 솎아내기). match3d.depth_to_points의 핀홀 역투영으로, depth > 0인 화소만을 (x, y, z) 점으로 한다(카메라 좌표, x = 열 방향, y = 행 방향, z = 깊이).

• "voxel": 밀도 grid (D, H, W)를 kw["iso"](기본값 0.5)로 임계값 처리하고, np.argwhere의 정수 index 좌표 (z, y, x)를 float로 만든 점군. 물리 좌표로는 바꾸지 않는다(spacing은 곱하지 않는다).

반환값: (N, 3) float64. kind가 위의 것 이외이면 ValueError. samples는 "mesh" 이외에서는 무시된다.

주의: "voxel"의 좌표는 배열 index 순서 (z, y, x), "depth"는 카메라 좌표 (x, y, z)로, 종류마다 축의 의미가 다르다. 이종을 register_cross / fuse_to_voxel로 섞을 때는, 이 차이를 호출 측이 맞춰 둘 것.

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

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

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

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

• transforms_repr — py -3.11 examples_3d/transforms_repr.py

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

points_to_voxel · gaussians_to_voxel · estimate_point_normals · match_points_ncc · match_pca · moment_axes · icp_point2point_3d · icp_point2plane

같은 카테고리(transform)

points_to_voxel · gaussians_to_voxel · mesh_to_voxel · mesh_to_points · depth_to_points · voxel_to_mips · voxel_to_mesh · tsdf_from_depth


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

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