gaussians op• 데이터 종류: gaussians → voxel
• 호출: import fullseye as fs; fs.ledger.gaussians_to_voxel(gaussians, shape=(32, 32, 32), origin=(0.0, 0.0, 0.0), spacing=(1.0, 1.0, 1.0), truncate=3.0)(구현을 직접 호출하려면 import reprconv; reprconv.gaussians_to_voxel(gaussians, shape=(32, 32, 32), origin=(0.0, 0.0, 0.0), spacing=(1.0, 1.0, 1.0), truncate=3.0), 원장에서 가져오려면 opsreprconv.get("gaussians_to_voxel"))
gaussians → 밀도 voxel (D,H,W). gaussians 의 두 번째 출구.
각 가우시안을 truncate * sigma에서 잘라 더한다. 격자의 원점과스텝을 명시 인수로 해 둔 것이 요점이며, 기본값 spacing=(1,1,1)을그대로 쓰면 "월드 좌표를 그대로 첨자로 삼는" 것이 되어, 실데이터에서는거의 틀린다 —— 게다가 예외는 나지 않고 밀도가 다른 곳에 설 뿐이라 알아챌 수 없다. tests/test_reprconv.py는 이 혼동을 명시적으로 측정하고 있다.
비가역. 손실은 3가지이며, 모두 숫자로 측정할 수 있다:
• 절단 —— 절단은 축 평행 상자(각 축 ±truncate*sigma)이므로, 남는 질량은 erf(t/sqrt(2))**3. t = 3에서 99.194%. ★여기는 한 번 틀렸다: 처음에 "3 sigma 구의 질량 97.07%"라고 썼지만, 구현은 상자이므로 값이 다르다. 스텝을 1.0 → 0.125로 세밀하게 하여 극한을 취하면 99.30% → 99.19%로 수렴하고, 구의 97.07%에는 가까워지지 않는 것으로 반증할 수 있었다(tests/test_reprconv.py::test_gaussians_to_voxel_mass_matches_box_truncation). 예외도 NaN도 나지 않는, 바로 "조용히 틀린 숫자를 반환하는" 종류의 오류.
• 격자 구적 —— 중점 규칙이므로 스텝이 sigma에 비해 거칠면 위로 치우친다 (실측: sigma = 1.5에서 스텝 1.0일 때 99.94%, 0.125에서 99.30%).
• 경계 잘림 —— 상자가 volume 밖으로 나간 부분은 떨어진다. 중심이 가장자리에가까운 가우시안에서는 절단보다 훨씬 큰 손실이 된다.
Args:
gaussians: mu / sigma / w를 가진 dict. mu는 (z, y, x).
shape: (D, H, W).
origin: 격자의 (z, y, x) 원점(월드 좌표).
spacing: 격자의 (dz, dy, dx) 스텝(월드 단위 / voxel).
truncate: 몇 sigma에서 자를지(기본값 3).
Returns:
(D, H, W) float64의 밀도(값은 "voxel당 가중치 합"이며, 체적 적분이
sum(w)에 가까워진다).
Raises:
ValueError: shape/spacing 부정 / truncate <= 0 / gaussians 부정.
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• representation_roundtrip — py -3.11 examples/representation_roundtrip.py
voxel 를 입력으로 받는 것)gaussians)points_to_gaussians · gaussians_to_points
*Provenance: reprconv.py — REPRCONV 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.