AltProcessDensitone · documents version 0.9.1

Registration & Analysis

The two images

Source is the ground truth: the positive digital image the negative was made from, before inversion and before any correction curve. Scan is a scan or copy-shot of the finished print.

Load them from the toolbar, from File → Open Source Image… (⌘O) and Open Scanned Print… (⇧⌘O), or by dropping files on the window. In the Both view each pane is its own drop target, so the pane a file lands on decides which slot it fills; in every other view a dropped image fills the scan.

Scan with fixed settings: RAW with a straight curve, no auto-exposure, no auto-levels, no sharpening, the same every time — see Scanning a Print for Measurement. Everything measured here is relative — normalized to the detected paper white and maximum black — so consistency beats absolute accuracy. If the scanner clips the paper white, the app says so in the status bar.

Registration

On load, the app matches the source into the scan and places a four-corner quad over the print area. Auto-Detect (toolbar, or ⇧⌘D) re-runs it and overwrites the current quad; the inspector’s Detect row reports a match percentage, green when the detector is confident.

The Both view’s scan pane, with the registration quad and its four corner handles

Drag any corner handle to correct it. Releasing the handle marks the quad as yours — a later automatic detection will not quietly move it back — and re-runs the analysis.

Two read-only rows check your work:

Margin excludes the outer edge of the print area from sampling (2 % by default), which keeps the coating edge, the plate mark and any print border out of the measurement.

Verifying by eye

View What to look for
Both Compare framing side by side while dragging corners
Overlay Ghosting means misalignment. The Overlay slider sets the blend
Diff A heat map of local differences: registration error shows as lit-up edges
Mask The pixels that actually contributed samples

Diff view — registration error would show as bright edges

Mask view — the flat regions the analysis sampled

What the analysis does

It re-runs automatically whenever anything it depends on changes — a corner, a slider, a picker, the active curve.

  1. Warp and sample. The scan is mapped onto the source’s grid through the quad, at analysis resolution (capped on the long edge for speed).
  2. Flat-region masking. Only locally flat neighbourhoods are sampled. Edge excl. sets the gradient threshold and Flat radius the size of the neighbourhood tested. This is what makes the measurement survive imperfect registration, paper texture, coating unevenness and dust: a pixel near a tonal edge would report the wrong tone if the alignment is off by a hair, so it is simply not used.
  3. Endpoint detection. Paper white and maximum black are found from the print — preferring the paper margin and the coating border when they are in the scan — and everything is normalized to them. There is no absolute densitometry here and none is needed.
  4. Binning. Source tones are divided into Bins (32, 64 or 128). Every sampled pixel is dropped into the bin of its source tone, outliers are rejected, and the bin’s printed value is its median.
  5. Response fit. The per-bin medians become a monotone response curve, smoothed with the chosen Smoothing mode and Window. Bins with too few samples are marked low-confidence rather than being invented.
  6. Correction. The measured response is inverted against the target (see Curves, Aim & Proofing) and composed with the active curve to produce the replacement LUT.

Reading the result

The bin table

The per-bin table

Δ TGT is the headline: measured minus source level, green within ±0.03 and red beyond. Negative means the print came out darker than the source asked for. COUNT and SPREAD tell you how much to trust the row, and CONF condenses that into one number — below 0.5 the row dims and the confidence turns red.

Empty bins show . Their Δ stays neutral, because a tone that never appeared in the image cannot be off target.

Select rows to see where those tones live: click, Shift+click for a range, ⌘+click to toggle one. The selected pixels are painted on the canvas — on the Both view’s source pane, and in Overlay, Diff and Mask.

The selected tones painted onto the image

The response graph

Response curves with the measured, target, active and adjusted series

Measured against the dashed Target is your process error. Curve is the active .acv and Adjusted is the replacement about to be exported; both are drawn in the ascending Photoshop-Curves convention. Vertical grey bands mark low-confidence tone spans — that is where the export will leave your current curve alone.

Statistics and warnings

The statistics panel

Check the endpoints first. White point and Black point carry their provenance: paper margin and coating are measurements, estimated (in red) means the image had no highlights or no shadows to read and a percentile was used instead. Print max flagged clipped? means the scan hit the top of the range.

Coverage is how much of the tone scale the image exercised. Below 60 % a banner appears under the toolbar and the status bar warns; the correction is still valid for the tones you did measure, and unchanged elsewhere.

The status bar carries the rest:

Warning What to do
quad aspect off by N% Fix the corner that is out of place
scan resolution low Scan larger; samples are being interpolated
no highlights / no shadows in image Endpoint estimated — treat that end of the curve with suspicion
black point from coating border The anchor is deeper than the process can print through film base; verify deep shadows
only N% of tones measured Use an image with a wider tonal range, or accept a partial correction
scan highlights at top of range Reduce repro exposure or disable auto-levels and rescan

Tuning the analysis

Defaults are sensible; reach for these when something is off.

Symptom Try
Response looks noisy, few samples per bin Fewer Bins (32), or raise the Window
Response looks over-smoothed, real structure lost More Bins (128), lower the Window
Mask leaves almost nothing Raise Edge excl., lower Flat radius — a busy, detailed image has few flat regions
Measurement looks contaminated near edges Lower Edge excl., raise Flat radius, raise Margin