tb_keypoints_to_image2d — 2D typed op

• 데이터 종류: keypoints → image

• 호출: fullseye.apply(img, "tb_keypoints_to_image2d", a=0.5, b=0.5)(2-D 는 이미지 1 장 + 스칼라 노브 2 개 a,b∈[0,1] 모델)

*그림 없음: 타입은 닿지만 범용 합성 입력이 이 op의 정의역 밖 —— 橋渡しで束縛した raster が 64×64 固定で、128×128 の点は外に落ちる. 사용법은 아래 실행 가능한 예제를 볼 것.*

사용법

이미지 좌표 (N,2) = (u, v) → 카운트 영상 (H, W). keypoints의 두 번째 출구.

round(v)를 행, round(u)를 열로 하여 1씩 더한다. 화소 격자로의양자화가 손실이며, keypoints_from_image2d와 왕복하면 위치가최대 0.5 화소 어긋난다(잘 떨어진 225점에서의 실측: 축당 RMS 0.2835 px = 균일 양자화의 이론값 1/sqrt(12) = 0.2887과 일치. 2-D 거리로는 sqrt(2)배인 0.4009 px이고, 이론 sqrt(2/12) = 0.4082). ★여기서도 한 번 틀렸다: 2-D 거리의 실측을 1-D의 이론값과 나란히 놓고 "0.29여야 하는데 0.40이다"라고 읽을 뻔했다 —— 축별 양과 거리의 양을 섞으면 올바른 구현이틀린 것처럼 보인다. 가까운 점은 연결 성분으로 융합되므로 왕복으로 점 수도 줄 수 있다(실측: 60점을 랜덤으로 두면 54점).

범위 밖의 점은 조용히 버리지 않는다 —— 버리면 "검출이 줄었다"인지 "영상이 너무 작았다"인지를 구별할 수 없게 된다.

Args:

keypoints: (N, 2)의 (u, v).

shape: (H, W).

Returns:

(H, W) float64의 계수 영상.

Raises:

ValueError: 형상 부정 / 비유한 / 범위 밖의 점이 있음 / shape가 상한 초과.

2-D 진화 레지스트리로 연결한 reprconv의 op keypoints_to_image2d. 구현은 같고, 호출 규약만 op(v, a, b)에 맞췄다. 이 op에는 조정할 매개변수가 없으며 a도 b도 쓰이지 않는다.

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

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

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

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

아래 예제는 원래의 대장 op keypoints_to_image2d를 호출한다. 이 브리지 op는 같은 구현을 fn(v, a, b) 규약에 맞춘 것뿐이므로 동작은 그대로 적용된다(호출 형식만 다름).

• representation_roundtrip — py -3.11 examples/representation_roundtrip.py

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

identity · gaussian · mean_box · bilateral · unsharp · median · min_filter · max_filter

같은 카테고리(typed)

tb_points_to_voxel · tb_estimate_point_normals · tb_iss_keypoints · tb_project_points · tb_render_point_depth · tb_statistical_outlier_removal · tb_radius_outlier_removal · tb_voxel_grid_downsample


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

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