graycode_decode — 3D structured_light op

• 데이터 종류: images → image2d

• 호출: import fullseye as fs; fs.ledger.graycode_decode(bit_images, thresh=0.5) -> 'np.ndarray'(구현을 직접 호출하려면 import fringe; fringe.graycode_decode(bit_images, thresh=0.5) -> 'np.ndarray', 원장에서 가져오려면 ops3d.get("graycode_decode"))

사용법

Gray code 비트 이미지 열 → 정수 프린지 차수 맵(절대 차수).

bit_images: 길이 K의 시퀀스(각각 2D 영상, 밝음=1 / 어두움=0). MSB first(bit_images[0]이

최상위 비트). thresh로 이진화한다.

thresh: 이진화 임계값(화소값 >= thresh를 1).

처리: 각 비트 평면을 이진화 → MSB first로 Gray 값을 조립 → Gray→binary 변환

(binary = gray ^ (gray>>1) ^ ... ^ (gray>>(K-1)))으로 절대 차수(정수)를 반환한다.

반환값: dtype int64의 2D 차수 맵(값 범위 0..2**K-1).

검증(ValueError): None / (K, H, W)로 변환할 수 없음 / K < 1 / K > 62(int64에 들어가지 않음) / NaN·Inf 포함. thresh는 검사하지 않는다(화소값과 같은 스케일로 준다. [0, 1] 영상이면 0.5가 기본값).

이진화는 고정 임계값 >= thresh뿐 — 반전 패턴(네거티브 영상)과의 비교나국소 임계값은 하지 않는다. 그림자·저반사로 어둡게 나온 화소는 0 비트로 복호되어, 오류가 나지 않고 잘못된 차수가 되므로, modulation 등으로 만든 신뢰 마스크를호출자가 따로 가질 것.

차수의 의미: Gray 부호는 인접 코드가 1 비트만 다르므로, 경계 화소의이진화 오류는 차수를 ±1만 어긋나게 한다(binary 부호라면 크게 튄다). 반환되는 정수를프로젝터 컬럼 번호나 줄무늬의 절대 차수로서, absolute_phase의 coarse (2π * 차수를 위상으로 환산)나 triangulate_column의 column에 사용한다.

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

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

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

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

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

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

• graycode_structured_light — py -3.11 examples_3d/graycode_structured_light.py

• structured_light_scan — py -3.11 examples_3d/structured_light_scan.py

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

fuse_to_voxel · fit_poly_surface · eval_poly_surface · surface_form_error · background_flatten · polar_unwrap · fit_zernike · matcap_shade

같은 카테고리(structured_light)

wrapped_phase · unwrap_phase_2d · decode_fringe · synthesize_fringes · absolute_phase · triangulate_column


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

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