sun op• 데이터 종류: image2d → table
• 호출: import fullseye as fs; fs.ledger.sun_bloom_fit(image, threshold=0.97, ignore_top_rows=0, min_area=30, max_area_frac=0.15, min_rim_fraction=0.3)(구현을 직접 호출하려면 import geocam; geocam.sun_bloom_fit(image, threshold=0.97, ignore_top_rows=0, min_area=30, max_area_frac=0.15, min_rim_fraction=0.3), 원장에서 가져오려면 opsgeocam.get("sun_bloom_fit"))
실사 속 태양 = 센서를 포화시키는 블룸(원반보다 크고, 노출에 따라 크기가 바뀌며, 영상 가장자리나 문자 띠에 잘린다). 가장 큰 포화 덩어리의 가장자리에 원을 피팅하여 중심을 반환한다 → table. 무게중심은 덩어리가 잘리면 잘린 쪽의 반대로 치우치므로(실측 15 px), 잘린 가장자리(영상 외곽과 ignore_top_rows 띠에 닿는 화소)를 버리고 남은 호에 대수적 최소제곱(Kåsa 1976)으로 원을 피팅한다.
sun_pixel_position 은 "꽉 찬 작은 원반"을 전제로 한 합성용 게이트로, 실사 도로 카메라에서는 국명의 흰글자·표지·흰 차를 태양으로 읽는다(Fintraffic 기상 카메라에서 24/24 가 오검출, 2026-09-21). 이 op 는 태양이라고 정하지 않는다:
원의 중심과 반지름·잔차·잘림의 유무를 반환하고, 태양인지 아닌지는 시각대로 움직이는지로 정한다(camera_orientation_from_sun_candidates).
Args:
image: (H, W) float, 0~1.
threshold: 포화로 간주하는 절댓값.
ignore_top_rows: 위쪽 끝의 몇 행을 무시할지(국명 등 글자의 띠).
min_area: 덩어리의 최소 화소 수.
max_area_frac: 덩어리의 최대 면적(영상에 대한 비)—— 하늘 전체가 날아간 사진을 거부한다.
min_rim_fraction: 잘리지 않은 가장자리가 원주의 몇 할 이상 필요한지(이 미만은 "너무 잘림"으로 ValueError).
Returns:
table: u / v(원의 중심)/ r(반지름 px)/ rms_px(가장자리의 반지름 잔차)/ area(덩어리의 화소 수)/
clipped(1 = 가장자리의 어딘가가 잘려 있다)/ rim_fraction / centroid_u / centroid_v(비교용 무게중심).
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• (아직 없음)
table 를 입력으로 받는 것)render_skyline_view · camera_orientation_from_skyline
sun)sun_position · sun_pixel_position · camera_orientation_from_sun · camera_orientation_from_sun_candidates
*Provenance: geocam.py — GEOCAM 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.