Files
GhiVideo/docs/history/2026-06-24_1129_세로화각보정-sensorH전환.md
b23042andClaude Opus 4.8 78fc090360 초기 커밋: 스테이션(측점) 기반 주행영상 플레이어
- 클라이언트(React/Vite): Video.js 플레이어, 하단 스테이션바, POI/구조물 영상 오버레이, 카메라 파라미터 보정, 미니맵/RoutePanel
- 서버(Express): Range 스트리밍, HLS 변환, 프레임 추출, tus 업로드, 주석 API
- 최근 작업: 스테이션바 종점역 표출/양끝 정렬/미도착(재생불가) 표시, POI 라벨 '구분' 우선·컴팩트 팝업·겹침제외 토글·동일좌표 다중행, 진행방향(상/하) 우선 표출, 커서 배지 크기·픽셀 떨림 개선

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 16:37:57 +09:00

1.8 KiB
Raw Permalink Blame History

FOV 보정을 세로화각(sensorH) 전용으로 전환 — 가로(중심선) 안 틀어지게

날짜: 2026-06-24 수정 파일: client/src/components/overlay/StationOverlay.tsx 관련: 2026-06-24_1117_1클릭-FOV초점-보정.md

결정적 단서 (사용자)

  • 카메라 패널에 영상 해상도 정상 표시 → cover 정렬 동작 중(가로/세로 매핑 OK).
  • 현재 f = 24.0mm.
  • f 보정 시 빨간 중심선(스테이션선)이 좌우로 벗어남.

해석

중심선이 가로로 잘 맞고 있다 = 가로(f/sW)는 정확. f 는 가로·세로 공통 배율이라 세로를 맞추려고 f 를 바꾸면 멀쩡한 가로가 틀어짐. 따라서 잔차는 세로 화각만 어긋남 → sensorH.

조치 — FOV 보정을 sensorH 역산으로 교체

드롭점의 세로(py)만 맞추고 가로(f/sW)는 그대로:

py = 0.5 + cy0 + (Yc/Zc)·(f/sH)  →  sH = (Yc/Zc)·f / (py*  0.5  cy0)
  • f·sensorW(가로) 미변경 → 중심선 좌우 위치 불변.
  • sensorH 만 갱신(clamp 6~36, 슬라이더 범위) → 상하 벌어짐만 교정.
  • 세로 중심 근처(|py0.5cy0|<0.03)면 역산 불안정 → 무시 + 안내(위/아래 떨어진 POI 사용).
  • UI: "🎯 세로화각 보정", 현재 senH 표시, 안내 InfoTip 갱신.

사용법

  1. 🎯 세로화각 보정 모드 ON.
  2. 세로 중심에서 위(먼 POI)/아래(가까운 POI)로 충분히 떨어진 POI 하나를 영상 속 실제 위치로 드래그.
  3. sensorH 자동보정 → 상하 정렬, 빨간 중심선 좌우는 그대로. 데이터셋별 저장.

검증

  • npm run build -w client (node20) tsc + vite build 통과.

소요 시간: 약 8분 Context 사용량: input ~360k / output ~5k tokens