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

**날짜**: 2026-06-24
**수정 파일**: `client/src/components/overlay/StationOverlay.tsx`
**관련**: [2026-06-24_1117_1클릭-FOV초점-보정.md](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, 슬라이더 범위) → 상하 벌어짐만 교정.
- 세로 중심 근처(|py−0.5−cy0|<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
