-
Notifications
You must be signed in to change notification settings - Fork 7
Home
Inspired by Rocketbook on Indegogo, this open source app allows the generation of printable, easy-to-scan pages, along with scanning API's to quickly and accurately scan these documents directly from the camera. Upload your scans automatically to the cloud, and insure they are perfect each and every time, completely automatically.
##Philosophy We believe fundamentally that document scanning should above all be simple, fast, and accurate. With modern cameras embedded in each and every phone, and with frame-rates and quality high enough to support 4k video, there is no reason that scans need to be able to process from any frame, sacrificing accuracy for universality. Instead, this software watches a stream of frames, and only accepts a scan when the borders are accurately detected, the sharpness is high enough quality, and the image is big enough to support a high-quality scan. Templates provide extra accuracy for those willing to print their pages before-hand. Finally, no scan is complete without cloud compatibility! OpenScan creates templates which can be distinguished by pre-set categories and automatically uploaded to a variety of cloud services upon scan. It also allows for optional printed selection boxes for per-page selection of cloud services without ever interacting with a menu.
#How to Contribute Currently we are working on the C++ implementation, proper code testing, commenting, and optimization are required.
A working python implementation exists on the master branch. script.py, when run, will open a webcam window. Print ScanTemplate.pdf from the assets folder, and hold it up to your camera with all corners visible. Flatten it and move it around, eventually the app should find an acceptable frame, draw the border around the image, and pop up with a scan of the image. Press q to exit.
On Unix systems for the first time you need to build the dependant files by issuing the following command.
$./dependencies.sh
If any error is encountered try running it again.
After successful completion of building the dependencies you can test run by issuing the following command.
$ python script.py
Note - To close the Capture and Preview window you may need to hold down the 'q' key for a few seconds in order for the the application to detect it.
Contact Ryan Peach at [email protected] for further instructions.
##Features to Work On Features which I do not currently have time for which others can implement:
- Sharpness detection so that only images which are in focus will be accepted. A method for this should be implemented in capture.cpp
- Scanning non-template images. I am already working on this as an alternative, but in the end this should be just as well developed as the main application.
- Detection and recognition of optional fill-points, which are basically focus points with an un-filled polygon in their center which are printed on the border of the page which the user can fill in by pencil or pen to select a cloud service they would prefer the page to be auto-uploaded to.
- Better output filters for color and drawings.
- A custom page generation application for multiple paper sizes, optional margins, optional custom focus points, and scanning behavior for different detects.
- Desktop & iOS support.
- Custom icons and other marketing features / images.
##Timeline This app should be in alpha by the end of the month. Current code for Desktop is available in Python on the master branch, and C++ implementation is currently in the works.
- Create working demo in Python.
- Create working C++ implementation.
- Create alpha Android application.
- Refine into full application.
##Dependencies OpenCV, Eclipse, Python 2.7, and Android SDK are all required to develop for this application. I am currently working in a Ubuntu 15 64bit development environment.