skyline_extract — GEOCAM skyline op

• 데이터 종류: image2d → signal

• 호출: import fullseye as fs; fs.ledger.skyline_extract(image, sky_is_bright=True, smooth=1.5, max_jump=3, jump_penalty=0.5)(구현을 직접 호출하려면 import geocam; geocam.skyline_extract(image, sky_is_bright=True, smooth=1.5, max_jump=3, jump_penalty=0.5), 원장에서 가져오려면 opsgeocam.get("skyline_extract"))

사용법

> 이 연산자의 설명은 아직 번역이 없습니다. 원문을 그대로 싣습니다.

写真から列ごとの空と地形の境界の行を動的計画法で 1 本抜く → signal (W,)。

Lie・Lin・Hsu 2005(*Pattern Recognition*: 航法のための頑健なスカイライン抽出)と同じ考え:

垂直方向の明るさの変化(空が上で明るければ `I[v−1] − I[v+1]` が正)を「境界らしさ」にし、

隣の列から行が `max_jump` 以上飛ばない連続な経路のうちコストが最小のものを選ぶ

(`jump_penalty` × 行の飛び)。雲や建物の縦の縁で局所的に強い応答が出ても、経路の

連続性が本物の稜線を残す。

Args:

image: (H, W) float。RGB なら先に灰色にする。

sky_is_bright: 空が地形より明るい(昼)。夜景・逆光で反転するなら False。

smooth: 縦方向の Gaussian σ [画素] (雑音)。0 で無効。

max_jump: 隣の列で許す行の飛び [画素]。

jump_penalty: 飛び 1 画素あたりのコスト(境界らしさは 0〜1 に正規化してある)。

Returns:

signal (W,) float: 列ごとの境界の行(0 が最上段)。**空しか写っていない・地形しか

写っていない**画像では境界の応答が弱く、経路の平均コストが 0 に近いので ValueError

で止める(黙って雑音の線を返さない)。

자세한 사용 가이드

• geocam 패밀리 가이드

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

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

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

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

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

• poc_public_camera_heading — py -3.11 examples/poc_public_camera_heading.py

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

sun_position · camera_orientation_from_sun · camera_orientation_from_sun_candidates · camera_orientation_from_skyline

같은 카테고리(skyline)

dem_skyline · render_skyline_view


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

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