sampling_alias_distance — FLYVISION alias op

• 데이터 종류: 없음 → table(인자만으로 정해지는 연산자 —— 이미지나 데이터 입력을 받지 않습니다)

• 호출: import fullseye as fs; fs.ledger.sampling_alias_distance(period_m, pitch_deg, lattice='hex', view_angle_deg=0.0, acceptance_deg=0.0, obliquity='along')(구현을 직접 호출하려면 import flyvision; flyvision.sampling_alias_distance(period_m, pitch_deg, lattice='hex', view_angle_deg=0.0, acceptance_deg=0.0, obliquity='along'), 원장에서 가져오려면 opsflyvision.get("sampling_alias_distance"))

사용법

주기 패턴이 표본화 격자에서 접혀(에일리어싱) 보이기 시작하는 거리 —— 검사 카메라 작동 거리의 규칙.

> 아래 상세 설명은 원문입니다 —— 요약과 제목은 번역되어 있습니다.

A period *period_m* seen from distance d at viewing angle theta has the angular period P cos^2(theta)/d (the cos^2 is the derivative of the line-of-sight intercept; obliquity="across" — the period runs perpendicular to the plane of obliquity — makes it a single cos). A lattice of pitch *pitch_deg* resolves angular periods down to sqrt(3) * pitch (hexagonal: the inscribed circle of its Brillouin zone) or 2 * pitch (square), so the target aliases once::

d > period_m * cos^2(theta) / (sqrt(3) * pitch) (hex)

d > period_m * cos^2(theta) / (2 * pitch) (square)

The same number is the working-distance rule of an inspection camera:

*pitch_deg* is the pixel's instantaneous field of view, *period_m* the pitch of the display, mesh, weave or halftone being inspected, and beyond the returned distance the picture carries a moire that is not in the part (Petersen & Middleton 1962 for the lattice Nyquist regions).

period_m: the target's spatial period, metres.

pitch_deg: the sample spacing — inter-ommatidial angle or pixel IFOV, degrees.

lattice: one of SAMPLING_LATTICES.

view_angle_deg: the obliquity of the line of sight, |theta| < 90.

acceptance_deg: the FWHM of the Gaussian acceptance (or pixel blur), degrees;

0 means a delta sampler.

obliquity: one of OBLIQUITIES.

Returns a dict {"distance_m", "nyquist_cycles_per_rad", "period_floor_deg", "mtf_at_nyquist", "lattice", "view_angle_deg"} — the alias distance, the lattice's Nyquist frequency, the smallest angular period it resolves, and the acceptance's modulation transfer at that limit (1.0 for a delta sampler).

Ground truth (pinned in the tests): a 7 cm period on a 1.1-degree hexagonal eye aliases beyond 2.105 m head-on and 0.526 m at 60 degrees; on a 4.63-degree eye beyond 0.500 m and 0.125 m; with a 1-degree acceptance the hexagonal 1.1-degree eye keeps 0.375 of the contrast at Nyquist, the 8.23-degree acceptance of a 4.63-degree eye keeps 0.024.

Raises ValueError: a non-positive *period_m* / *pitch_deg* (an empty *period_m* is refused as not a number), a negative *acceptance_deg*, a *view_angle_deg* at or beyond 90, and an unknown *lattice* / *obliquity*.

자세한 사용 가이드

• fly_vision 패밀리 가이드

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

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

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

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

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

• poc_zebra_stripes_fly_eye — py -3.11 examples/poc_zebra_stripes_fly_eye.py

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

fly_t4t5_field · fly_flow_from_directions · fly_matched_filter · fly_egomotion_from_flow · fly_eye_merge · fly_view_plane_texture · fly_hex_resample · fly_expansion_readout

같은 카테고리(alias)

lattice_moire_peak


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

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