restoration op• 데이터 종류: measurement → voxel
• 호출: import fullseye as fs; fs.ledger.vol_gaussian_psf(sigma, truncate=4.0)(구현을 직접 호출하려면 import volrestore; volrestore.vol_gaussian_psf(sigma, truncate=4.0), 원장에서 가져오려면 ops3d.get("vol_gaussian_psf"))
총합 1 로 정규화한 3-D 가우스 PSF 커널. *sigma* 는 스칼라 또는 축별.
축별 *sigma* 는 (sz, sy, sx), voxel 단위; 커널은 축마다 +-truncate*sigma 를 덮는다(홀수 크기, 중심은 가운데 voxel). 장비 PSF 가 Gaussian 으로잘 근사될 때 vol_richardson_lucy 의 편리한 짝이다. PSF_MAX_ELEMENTS (~256^3) 를 넘는 커널은 ValueError 를 낸다 — 그렇게 큰 PSF 는 장비가 아니라 입력 실수다.
형태: 각 축의 반지름 r = ceil(truncate * sigma), 변 길이 2r + 1(홀수)의 (2rz+1, 2ry+1, 2rx+1) float64 배열. 축 순서는 (z, y, x) 이며, sigma 를 (sz, sy, sx) 로 주면 그 순서로 대응한다(이방성 PSF). 3 개의 1-D Gaussian exp(-x^2 / (2 sigma^2)) 의 외적을 전체 합으로 나누므로 합계는 정확히 1, 중심 voxel 이 최댓값. 단위는 voxel(mm 의 PSF 폭은 spacing 으로 나눈 뒤 전달).
인수와 검증(ValueError):
• sigma: 양의 유한 스칼라, 또는 길이 3 의 양의 유한값. 2 제곱이 0 으로언더플로할 만큼 작은 값(~1.5e-154 미만)은 0/0 이 되므로 거부.
• truncate: 양의 유한값(기본값 4.0 = 한쪽 4σ 에서 절단).
• 요소 수 prod(2r+1) 가 PSF_MAX_ELEMENTS(2**24)를 넘으면 거부(σ≈300 에서 64 GB 를 할당할 뻔한 실측이 동기).
용도: vol_richardson_lucy(vol, psf) 의 psf. RL 쪽에서도 합계 1 로재정규화하므로, 여기서 만든 커널을 그대로 넘겨도 된다.
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• deconv_fft_restore — py -3.11 examples_3d/deconv_fft_restore.py
voxel 를 입력으로 받는 것)voxel_to_mips · voxel_to_mesh · signed_distance_field · to_points · sobel3d · hessian3d · curvature_maps · edt_jfa
restoration)*Provenance: volrestore.py — 3D 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.