skyline_extract — GEOCAM skyline op

• Datenarten: image2d → signal

• Aufruf: import fullseye as fs; fs.ledger.skyline_extract(image, sky_is_bright=True, smooth=1.5, max_jump=3, jump_penalty=0.5) (die Implementierung direkt: import geocam; geocam.skyline_extract(image, sky_is_bright=True, smooth=1.5, max_jump=3, jump_penalty=0.5); aus dem Register: opsgeocam.get("skyline_extract"))

Verwendung

Extrahiert aus einem Foto per dynamischer Programmierung 1 Linie mit der Zeile der Grenze zwischen Himmel und Gelände für jede Spalte → signal (W,).

Dieselbe Idee wie Lie, Lin und Hsu 2005 (*Pattern Recognition*: robuste Skyline-Extraktion für die Navigation):

Die vertikale Helligkeitsänderung (I[v−1] − I[v+1] positiv, wenn der Himmel oben heller ist) wird als "Grenzähnlichkeit" genommen, und unter den stetigen Pfaden, deren Zeile gegenüber der Nachbarspalte nicht um max_jump oder mehr springt, wird der mit minimalen Kosten gewählt (jump_penalty × Zeilensprung). Selbst wenn Wolken oder senkrechte Gebäudekanten lokal starke Antworten liefern, bewahrt die Stetigkeit des Pfads den echten Grat.

Args:

image: (H, W) float. RGB wird zuerst in Grau umgewandelt.

sky_is_bright: der Himmel ist heller als das Gelände (tagsüber). False, wenn er bei Nachtszenen oder Gegenlicht invertiert ist.

smooth: vertikales Gaussian σ [Pixel] (Rauschen). 0 deaktiviert es.

max_jump: zwischen Nachbarspalten erlaubter Zeilensprung [Pixel].

jump_penalty: Kosten pro 1 Pixel Sprung (die Grenzähnlichkeit ist auf 0 bis 1 normiert).

Returns:

signal (W,) float: Grenzzeile pro Spalte (0 ist ganz oben). Bei Bildern, die nur Himmel oder nur Gelände zeigen, ist die Grenzantwort schwach und die mittleren Pfadkosten liegen nahe 0, daher stoppt es mit ValueError

(es wird nicht stillschweigend eine Rauschlinie zurückgegeben).

Ausführlicher Anwendungsleitfaden

• Leitfaden zur Familie geocam

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• poc_public_camera_heading — py -3.11 examples/poc_public_camera_heading.py

Typkompatible Folge-Operatoren (nehmen signal als Eingabe)

sun_position · camera_orientation_from_sun · camera_orientation_from_sun_candidates · camera_orientation_from_skyline

Gleiche Kategorie (skyline)

dem_skyline · render_skyline_view


*Provenance: geocam.py — GEOCAM Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

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