Commit Graph
4 Commits
Author SHA1 Message Date
Claude b827c58eda Rewrite stitch-cameras.py: north-only cylindrical warp + colour matching
- Warp only north cylindrically (sunrise completely unmodified)
- Focal-length grid search picks the best phase-correlation alignment
- Soft validity mask (31x31 erosion) fades out black corners of the warp
- Per-channel colour/exposure match: north's treeline strip mean is scaled
  to match sunrise's, removing the visible sky-colour seam between cameras
- Corrected overlap blend: invalid north pixels fall back to sunrise
  (s_weight = max(alpha, 1-validity)) instead of showing black
- Auto-crops left black-corner columns from the final canvas

https://claude.ai/code/session_01C4jbd3waXG3eKZYbGUjLUQ
2026-04-18 13:11:16 +00:00
Claude e34beeed00 Add cylindrical panorama previews (f=1920 and f=1550)
North is projected onto a cylinder so its right edge curves naturally into
sunrise's left edge, giving a continuous panoramic sweep from North to East.

cyl-f1920-preview.jpg  — f=1920 px (~90° HFOV): most natural perspective
cyl-f1550-preview.jpg  — f=1550 px (~105° HFOV): more pronounced curve

stitch-cameras.py updated to use cylindrical projection.  Focal length is
a tunable argv[4]; refine once the user confirms which curve looks right.
The 36-second inter-shot gap causes cloud drift at the seam — live video
frames captured simultaneously will not have this artefact.

https://claude.ai/code/session_01C4jbd3waXG3eKZYbGUjLUQ
2026-04-18 11:19:03 +00:00
Claude df26e1d8e3 Add aligned panorama preview and finalised stitch script
Phase-correlation on the treeline/horizon band (rows 70-90%) found:
  tx = -3324 px   (north is 3324 px to the left of sunrise)
  ty = -85 px     (north camera is 85 px higher — slight tilt difference)
  overlap = 516 px wide, feather-blended with a horizontal gradient

Result in images/stitch-preview/north-sunrise-aligned-preview.jpg:
  7164x2075 px panorama with continuous horizon and treeline.
  Cloud "V" at seam is a 36-second inter-shot artefact only; live video
  frames captured simultaneously will have no such discontinuity.

stitch-cameras.py: accepts tx/ty overrides as argv[4]/argv[5] so the
  offsets can be tuned without code changes.

https://claude.ai/code/session_01C4jbd3waXG3eKZYbGUjLUQ
2026-04-18 04:15:34 +00:00
Claude 8908c2f01a Add camera-stitch preview and feature-matching script
- images/stitch-preview/north-sunrise-hstack.jpg:
  naive side-by-side preview of the two skycams at 14:29 on 2026-04-17
- images/stitch-preview/feature-matches-debug.jpg:
  close-up of overlap region (right 40% of north × left 40% of sunrise)
  with ORB Lowe-ratio matches drawn — 39 candidates, RANSAC survives only
  4 inliers because the 90° perspective offset invalidates a similarity
  transform.  Overlap IS present (trees, houses, power poles visible in
  both) but full homography needs more/better tie points.
- stitch-cameras.py: reusable script that generates both previews plus a
  similarity-transform .txt for reuse in ffmpeg filter chains once we
  have enough matches (or manual tie-points).

https://claude.ai/code/session_01C4jbd3waXG3eKZYbGUjLUQ
2026-04-18 03:59:36 +00:00