| Age | Commit message (Collapse) | Author | 
 | 
 | 
 | 
The sauvola and integral image version are still slightly different,
irritatingly.
 | 
 | 
 | 
 | 
 | 
 | 
- Improve integral sauvola by rounding threshold correctly
- The Sauvola functions can now process any image.Image, not
  just an image.Gray
- Add ImageWindower interface and use it to generalise
  wipesides.go
- Rely on Bounds() for image bounds rather than implementation-
  specific stuff in integralimg
Note that a couple of the wipesides tests are now failing. It's
possible that this is due to fixed or introduced bugs (let's hope
the former) changing sensible thresholds. Will need to look into
this and sort it.
 | 
 | 
 | 
 | 
Several changes made to wiper to improve things:
- If findbestedge finds more than one 'best' line, choose
  the middle one, rather than the first.
- findbestedge selects the line with the lowest number of
  black pixels, rather than (erroneously) the highest.
- Added a findedgesOutin() function, which finds edges like
  findedges() but looking from the outside edges of the image
  inwards, rather than from the inside out. More testing is
  needed to decide whether this is useful; initial testing
  showed very little difference, but that was limited to lightly
  binarised images. This is in use by VWipe() at present, where
  worries about several gutters thanks to the edges of other
  pages aren't present.
- Added separate vwsize, vthresh and vmin arguments to WipeFile
  so that vertical wiping can have different parameters (which
  is very important for good quality vertical wiping).
- Updated wiping tests.
- Rewrote the wipe cmd to use WipeFile() directly.
 | 
 | 
 | 
 | 
 | 
 | 
These should be nice and robust to small changes that are still valid, as they don't depend on the output not changing, only on the detected sides being within appropriate limits.
 | 
 | 
 | 
 | 
integralimg package under it
 |