Coder Social home page Coder Social logo

innovationquest2019 / document-scanner Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aniruddha-tapas/document-scanner

0.0 1.0 0.0 131.01 MB

Source code for the Capstone Project of Udacity Android Developer Nanodegree

License: GNU General Public License v3.0

Java 100.00%

document-scanner's Introduction


Document Scanner

This app turns your mobile into a portable scanner, which can be used for scanning handwritten notes and printed documents.

It automatically detect the edge of the paper over a contrasting surface. When using the printed special page template it automatically detects the QR Code printed on the bottom right corner and scans the page immediately. After the page is detected, it compensates any perspective from the image adjusting it to a 90 degree top view and saves it on a folder on the device.

It also incorporates OCR functionality which the user can use to detect text from documents and save them as editable text files in the external storage of the device.

It is possible to launch the application from any other application that asks for a picture.


Features

  • Scan handwritten or printed documents
  • Detects page frame and corrects perspective
  • Fast and smooth Image Processing on the fly
  • Scans are saved to your device as images
  • Detect text using the OCR functionality of the app
  • Save the detected texts as editable text files to your device.
  • Easily share scanned docs with others via social media, email attachment or sending the doc link.

Screenshots

Libraries

  1. OpenCV Android v3.1.0 for capturing and manipulation of images. Due to this version of OpenCV integerated in the app, it needs to run on Android 5.0 (lollipop) or newer. You can integrate a lower version of OpenCV like v2.4.3 if you want to run the app on devices below Android 5.0.

    This stackoverflow link demonstrates the static initialization of OpenCV in Android Studio. The OpenCV native libraries are the main reason for the 38mb sized APK. To avoid this, you can make use of OpenCV Manager application which should to be installed on the android device so as to make OpenCV work.

Google Services:

  1. Google Zxing for barcode detection and image processing.

  2. Google Mobile Vision Text API to see and understand text using OCR.

  3. Google Analytics to measure user interaction with the app.

    If you want to use Google Analytics in your app, you'll require a configuration file. You must have a Google Analytics account and a registered property to get the configuration file.

    Then copy the google-services.json file you just downloaded into the app/ or mobile/ directory of your Android Studio project. Open the Android Studio Terminal pane: For Windows : $ move path-to-download/google-services.json app/ For Mac/Linux : $ mv path-to-download/google-services.json app/

  4. Android-Universal-Image-Loader for loading, caching and displaying images in the gallery grid layout.

  5. FABToolbar for implementing a Floating Action Button transforming into toolbar.

  6. Drag-Select-RecyclerView for Google Photos style multiselection for RecyclerViews.

External code and References

This project wouldn't have been possible without the following great resources:

not to forget:


document-scanner's People

Contributors

aniruddha-tapas avatar paitoanderson avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.