depth_to_organized_points — 3D range_image op

• 데이터 종류: depth → pointmap

• 호출: import fullseye as fs; fs.ledger.depth_to_organized_points(depth, fx=None, fy=None, cx=None, cy=None)(구현을 직접 호출하려면 import range_image; range_image.depth_to_organized_points(depth, fx=None, fy=None, cx=None, cy=None), 원장에서 가져오려면 ops3d.get("depth_to_organized_points"))

사용법

organized 깊이 이미지 → 격자 정렬 3D 점 (H,W,3).

fx,fy 지정 시 원근 역투영 P=((u-cx)/fx*d, (v-cy)/fy*d, d). 미지정이면 정사영(P=(x,y,depth), 격자 간격 1).

u는 열 번호 (0..W-1), v는 행 번호 (0..H-1). fx·fy는 화소 단위의 초점 거리, cx·cy는 주점으로, 생략 시 영상 중심 ((W-1)/2, (H-1)/2). fx와 fy 중 어느 하나라도 None이면 정사영 모드가 되며, cx·cy는 무시된다. 정사영 모드에서는 x, y가 화소 좌표 그대로이므로, 깊이의 단위(mm 등)와 x, y의 단위(화소)가 섞이는 점에주의. 원근 모드에서는 3 성분 모두 깊이와 같은 단위가 된다. 깊이 0이나 NaN은 그대로 전파된다(0인 화소는 x=y=0의 원점에 모인다). 따라서 무효 화소의 제외는 호출 측에서 한다. 반환값은 float64의 (H,W,3), 제3 축은 (x, y, z)로 x는 오른쪽, y는 아래, z는 안쪽 깊이(영상 좌표계). 입력 검증은 없으며, 2-D 이외는 d.shape의 전개에서 실패한다. normals_from_depth는이 함수의 출력을 내부에서 사용한다.

배경 지식 가이드(이 연산자 앞에 있는 물리·규약)

• blender_interop — Blender와 함께 쓰기 — 형상을 만들고 fullseye로 측정(축·단위·정답 데이터의 함정)

• depth_sensors — 깊이 센서 지식 — 측거 원리·실기 수치·결측이 나타나는 방식

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

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

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

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

• range_image — py -3.11 examples_3d/range_image.py

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

fuse_to_voxel · bump_normals_fbm

같은 카테고리(range_image)

normals_from_depth · occlusion_edges · bearing_angle_image


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

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