Skip to content

Process curves: export, smoothing, lost-tone warnings - #50

Merged
akendrick merged 2 commits into
mainfrom
feature/curve-export
Nov 5, 2026
Merged

akendrick merged 2 commits into
mainfrom
feature/curve-export

Conversation

@akendrick

Copy link
Copy Markdown
Owner

ChartThrob-style curve workflow for process calibration.

  • Export: process curves as Photoshop Curves (.acv, up to 16 natural-spline points placed greedily where the spline strays most from the unrounded curve), Photoshop arbitrary map (.amp, exact at 8 bits), a 33³ .cube LUT and CSV. App: "Export Curve…" in Process Calibration. CLI: openquad curve CURVE OUT, plus --image PHOTO with a .tif output for the curved photo.
  • Smoothing: a local straight-line (tricube, LOESS-style) fit over neighbouring patches before inverting, then a least-squares never-falling fit (pool adjacent violators) in place of the running maximum. None/Light/Medium/Strong = 0/3/5/9 patches; Medium by default, kept in run.json, chart --smoothing. On simulated noisy charts Medium cuts curve roughness about 20–30× and halves the worst error.
  • Lost tones: counts patches printing as paper white or full black beyond what the target expects; 3% or more gives a warning with what to change (exposure or blocking colour). Shown in the wizard's result and log and in openquad chart; stored in the round's results.
  • Swift core mirrors all of it, bit for bit against new vectors (builds.json).
  • Tests: pytest 466 (98% coverage), Swift core 70, app 34.

The .acv/.amp layouts follow the Photoshop file formats but haven't been opened in Photoshop yet.

🤖 Generated with Claude Code

akendrick and others added 2 commits November 5, 2026 13:50
…arnings

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@akendrick
akendrick merged commit e86fb9c into main Nov 5, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant