


Is This Removal Visible
Measuring it
Is this removal visible?
The eye finds a removal at its edge: a seam, a patch of texture that is too smooth or too busy, a line that stops. The removal record measures the first two and checks for the third, for every removal, and says what it found in plain words.
How the seam number is worked out
- Find the filled area. The painted region after Expand, grown by the feather — every pixel the removal was allowed to change. Nothing outside it moved, so everything outside it is the original photograph.
- Read three rings. The outer four pixels of the region itself, in the result; two pixels either side of where the fill meets the untouched picture, in the result; and a ring three to ten pixels outside the filled area, which is original picture.
- Measure how busy each ring is. For every pixel, the change in brightness to its neighbours left-right and up-down (a gradient). Each ring gets the average. Grass is busy; a sky is not.
- Compare. The seam number is the difference between the inner ring and the outer ring, plus any extra edge along the join itself, divided by how busy the outer ring is. A fill as busy as its surround with a clean join scores near zero.
Written out: seam number = ( |inner − outer| + the amount the join exceeds outer ) ÷ outer, where each term is the average gradient in that ring and outer is never taken as less than two brightness levels. Dividing by the surround matters: a step of two levels is invisible on gravel and obvious on a clear sky.
What the bands mean
| Reading | Seam number | What it suggests |
|---|---|---|
| reads as continuous | under 0.30 | The fill is about as busy as its surround and the join adds no edge of its own. |
| may show at 100 % | 0.30 to 0.75 | A difference you are likely to find when zoomed to actual size. Check it in Compare at 1:1. |
| may show at fit size | 0.75 or more | Large enough to see without zooming: try another engine, a re-roll, or Expand by two pixels and fill again. |
| not measurable | — | The region touches the frame edge, or there is too little untouched picture around it to compare against. |
A cover (the photo redactor) and a clear-to-transparent get no number: one is meant to be seen and the other is not a fill.
The two checks beside it
Texture may repeat. Patch search only. The search records where each filled patch was copied from. When more than 60 % of the filled patches share a source with another filled patch, a small area of the photograph has been pasted into the hole more than once — the classic tell of three identical tufts of grass. A re-roll with a new seed, or a clone from a pin you choose, usually fixes it.
A straight line enters here and does not continue. Strong straight edges just outside the fill — a railing, a horizon, a grout line — are followed into it. If the edge inside is under 35 % as strong as it was outside, the line stopped at the fill. No classical engine can carry a line across a hole on its own; a clone from a pin on the same line can, and the structure-aware model often can for a while.
Where it is wrong
- It is computed on the reduced copy on screen, so a seam narrower than one screen pixel at that size is averaged away.
- It reads brightness only; a fill with the right texture in a slightly wrong colour can score low.
- Meaning is invisible to it: a half-erased word or face can score well.
- The bands were set on a generated corpus, not yet on people's judgement of real photographs.