Skip to content

"Onion-skin" visual differences between a reference document image and a scanned copy

License

Notifications You must be signed in to change notification settings

risicle/docoskin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Docoskin

"Onion-skin" visual differences between a reference document image and a scanned copy.

Given an image of a reference document, docoskin will attempt to find key points of the document in a scanned copy, align the two, auto-correct the image contrasts and display a combined image, featuring sections in red which were "removed from" the reference document and sections in green which were added to the document.

The intended use for this is comparing a signed, returned scan of a contract with the original version as provided to the signer to check for unagreed amendments.

Implemented as a python library with a command-line interface. Significantly more power and flexibility is achievable through accessing the python components.

Depends on opencv and six (and, on python2.7, the futures backport).

opencv is always going to be a slightly painful dependency from a python point of view because a) it's a native library and b) it doesn't really play by python packaging rules supplying an egg. I advocate use of Nix to solve both these problems and provide a default.nix so that nix users can simply perform a

$ nix-shell .

in the source directory for a development-ready shell (somthing like a non-python-specific virtualenv).

Those wishing to attempt using the pypi opencv-python package can try installing the package with the 'extra' pypi_opencv, which hypothetically should download & install opencv from pypi

$ pip install -e .[pypi_opencv]

but the author has never had any luck with that and has unfavourable opinions of pip in general, not to mention the concept of downloading & installing binaries from pypi.

Preliminary license is GPLv3.

Tests

The test suite makes use of images which are kept in a git submodule due to their size. Performing a

$ git submodule init
$ git submodule update

should fetch the required data. If this data is not present, the tests will quietly skip tests requiring images (which is most of them, though).

About

"Onion-skin" visual differences between a reference document image and a scanned copy

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published