Fixing the DS-620's yellow cast and vertical banding¶
Scans from the DS-620 came out yellowish — a scan of plain white paper was visibly warm. Measuring the channels (rather than eyeballing) confirmed it: the blue channel sat well below red and green. A global white balance pulled the paper back to true white and fixed the cast.
But that wasn't the whole story. Even after white-balancing, there were faint vertical bands of slightly different colour running down the page — not a single global tint, but column-to-column variation.
Why: an uncalibrated CIS sensor¶
The DS-620 uses a CIS sensor — one row of sensor elements spanning the page width, each reading its own column. Those elements differ slightly in gain and colour, and the scanner corrects for it using a calibration taken against a reference sheet. That calibration was never done here (the little calibration sheet that ships with it was long lost), so every column carried its own tint → vertical banding.
The insight: a white sheet is the calibration reference¶
You don't need the special sheet. A scan of plain white paper is the reference. If the paper is uniform, any column-to-column difference in that scan is the sensor's error — so you can measure and cancel it.
This is a flat-field correction:
- Scan a sheet of pure white paper once.
- For each sensor column, measure its average R/G/B on that white scan.
- Compute a per-column gain that maps every column to the same white.
- Multiply every future scan by those gains → even illumination, banding gone. (A global white balance is the fallback when no map exists.)
Doing it with the tool¶
./scan _white.jpg # scan a blank white sheet
./correct --calibrate _white.jpg # build the flat-field map (per-column gains)
./correct scan.jpg # every later correction applies the map
Re-run the calibration if scans drift over time.
Bonus: black & white belongs in software, not the scanner¶
The DS-620's hardware "LineArt" thresholds using the raw, uneven sensor data, giving patchy text. Scanning in Gray, applying the flat-field correction so illumination is even, then adaptive-thresholding in software gives clean bilevel and keeps faint pencil strokes the hardware would drop.
Related: Installing the DS-620 on Linux.