How the detector decides
The hard part of removing dust is not removing it. It is deciding what is dust. Every plausible test for “this pixel is damage” also fires on something legitimate: a test for thin bright lines catches telephone wires, a test for local outliers catches film grain and catchlights, a test for hard edges catches the whole photograph. Running one test well is not the answer. Running two that fail on different things and only believing them when they agree is.
| Pixel | Narrower than the element? | Far from its local median? | Marked |
|---|---|---|---|
| A dust speck | Yes | Yes | Yes |
| The edge of a roof | Yes, at the edge itself | No — the median follows the edge | No |
| Film grain | Often not | Yes | No |
| A hairline scratch | Yes | Yes | Yes |
Sensitivity is a threshold, not a re-reading
The expensive part — the two tests — runs once when the scan opens and produces a score from nought to two hundred and fifty-five for every pixel. The slider picks the line through those scores. That is why the overlay redraws while you drag it rather than a second after you let go, and it is why the useful range of the control is not linear: the interesting territory on a real scan is a narrow band, and the slider is shaped to spend most of its travel inside it.
Two tidying passes you do not control
Isolated single pixels are dropped before the mask is drawn. At a useful sensitivity a scan produces thousands of them, they are grain rather than damage, and filling them softens the photograph for nothing. What survives is then grown by one pixel in each direction, because the dark shadow beside a scratch is part of the scratch, and a fill that stops at the bright core leaves a visible outline of where the scratch was.
Editing the mask is the work
The brush is not a fallback for a detector that failed. It is the point of the design. No threshold on any measurement can tell a scratch across a face from an eyelash, because at the level of pixels they are the same event, and the difference is entirely a matter of what the photograph is of. So the tool marks what it can defend and then hands you the two brushes.
Marking and unmarking are stored apart from the detected mask, which is what lets you change sensitivity after you have brushed without losing the brushwork. Unmarking is applied last and always wins. Both survive into the save, resampled from the preview grid to the full-resolution one by nearest neighbour — brushwork is a decision rather than a measurement, and half a decision is not a thing.
- Scratches, tears and creases are three different problemsOne taxonomy, three fills, one of them built — and what a model does instead.
- Restore an old photographOpens on fade correction, for a print that has gone pale and warm.
- What restoration cannot bring backSilvering, mould, missing faces, and the honest end of the list.
Questions about marks on a scan
- What makes a pixel count as a scratch rather than as part of the photograph?
- It has to fail two independent tests at once. The first asks whether it is narrower than the detector's element and brighter or darker than what surrounds it; a scratch fails that, and so does the bright side of any hard edge in the picture. The second asks how far it sits from the median of its immediate neighbours; a scratch fails that too, but an edge does not, because a median filter follows a real edge exactly. The two answers are combined by taking the smaller, so passing either one is enough to stay out of the mask.
- There is damage in the red channel that barely shows in the grey. Can it find that?
- Turn on 'Read each colour separately' in the Detect group. The detector then runs its two tests on red, green and blue as well as on luma and keeps the strongest answer from any of them. Dye-layer damage on a colour print often sits almost entirely in one layer, where it is obvious in that channel and nearly invisible in a weighted grey. It costs four passes instead of one, so it is a switch rather than the default.
- A long scratch was marked in pieces with gaps in it. Does that matter?
- Slightly, and the brush is the fix. The fill works region by region from the boundary inwards, so a scratch broken into six pieces is filled as six short problems rather than one long one — which is usually fine, and occasionally leaves faint knuckles where the gaps were. Painting along the line with the marking brush joins it up. Marked pixels are also grown by one before filling, so the dark halo either side of a scratch is included without your having to trace it.
- How thin does damage have to be for this to work?
- Up to about eight or nine pixels across at the resolution you are working at, which on a 600 dpi scan is roughly a third of a millimetre on the paper. Past that the fill has too little intact picture within reach and it starts to average across the gap rather than through it. The symptom is a soft band where the damage was. That is the boundary of this page's engine, and it is where the optional model pass takes over: it redraws regions wider than twice the reach instead of averaging them, which is a more convincing answer and an invented one.
- The mask found 8,000 regions. Is that a problem?
- It is a number to read rather than a failure. A dusty scan at a high sensitivity genuinely does contain thousands of separate specks, and filling each of them is fast because each is tiny. What the figure is useful for is comparison: if it jumps from four hundred to eight thousand when you nudge the slider two steps, you have crossed out of damage and into film grain, and the picture will go slightly soft if you fill at that setting.