skyline op• Data kinds: image2d → signal
• Call: import fullseye as fs; fs.ledger.skyline_extract(image, sky_is_bright=True, smooth=1.5, max_jump=3, jump_penalty=0.5) (implementation को सीधे call करना हो तो import geocam; geocam.skyline_extract(image, sky_is_bright=True, smooth=1.5, max_jump=3, jump_penalty=0.5), registry से लेना हो तो opsgeocam.get("skyline_extract"))
photo से dynamic programming द्वारा हर column के लिए आकाश–terrain सीमा की row वाली 1 line निकालता है → signal (W,)।
Lie, Lin और Hsu 2005 (*Pattern Recognition*: navigation के लिए robust skyline extraction) जैसा ही विचार:
vertical दिशा में brightness के बदलाव (आसमान ऊपर ज़्यादा bright हो तो I[v−1] − I[v+1] positive) को "boundary जैसापन" माना जाता है, और उन continuous paths में से, जिनमें पास के column से row max_jump या उससे ज़्यादा नहीं उछलती, सबसे कम cost वाला चुना जाता है (jump_penalty × row की उछाल)। बादलों या इमारतों के vertical किनारों पर locally तेज़ response आए तब भी path की continuity असली ridge line को बचाए रखती है।
Args:
image: (H, W) float। RGB हो तो पहले grey में बदला जाता है।
sky_is_bright: आसमान terrain से ज़्यादा bright है (दिन)। रात के दृश्य या backlight से उलटा हो तो False।
smooth: vertical दिशा का Gaussian σ [pixels] (noise)। 0 पर बंद।
max_jump: पास के columns के बीच अनुमत row की उछाल [pixels]।
jump_penalty: हर 1 pixel उछाल की cost (boundary जैसापन 0 से 1 पर normalise है)।
Returns:
signal (W,) float: हर column की boundary वाली row (0 सबसे ऊपर)। जिनमें केवल आसमान या केवल terrain दिखता है ऐसी images में boundary response कमज़ोर होता है और path की औसत cost 0 के पास होती है, इसलिए ValueError
से रुकता है (चुपचाप noise की line नहीं लौटाता)।
• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।
• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।
• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।
• poc_public_camera_heading — py -3.11 examples/poc_public_camera_heading.py
signal को input के रूप में लेते हैं)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 operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.