• Stars
    star
    353
  • Rank 120,322 (Top 3 %)
  • Language
    Java
  • License
    GNU General Publi...
  • Created over 8 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Source code for the Capstone Project of Udacity Android Developer Nanodegree

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.

    How to integrate OpenCV into Android Studio

    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.

    Get A 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:


More Repositories

1

Operating-Systems-Notes

📚 Compendium of all the important OS concepts and key points. https://applied-programming.github.io/Operating-Systems-Notes/
332
star
2

Predicting-Diseases-From-Symptoms

Training a decision tree to predict diseases from symptoms.
Jupyter Notebook
98
star
3

Obstacle-Detection-and-Path-Planning

Processing an Image to find obstacles and the minimum path between two similar objects using OpenCV.
Python
62
star
4

How-to-use-SyntaxNet

Demo code to use SyntaxNet for basic paraphrasing.
Python
53
star
5

UPES-SPE-Fest

An Instagram like Social Networking Android App for UPES SPE Fest using Firebase as backend.
Java
40
star
6

Classifying-Plants-using-Transfer-Learning

Retraining Inception-v3 model to perform image segmentation using Tensorflow.
Python
16
star
7

Applied-Machine-Learning

Applied Machine Learning projects from my site: http://www.appliedprogramming.net/machine-learning/home.html
Jupyter Notebook
15
star
8

Speech-Recognition-of-Digits-using-Tensorflow

Implementing LSTM Recurrent Neural Nets to recognize spoken digits using Tensorflow.
Python
11
star
9

Image-Segmentation

Character Segmentation in Text Images in MATLAB
MATLAB
7
star
10

Computer-Vision

Computer Vision notebooks from my site: http://www.appliedprogramming.net/computer-vision/home.html
Jupyter Notebook
7
star
11

Style-Transfer-using-VGG-16-Model

Implementing Neural Style Transfer in Tensorflow
Jupyter Notebook
5
star
12

Simulating-a-Self-Driving-Car

Using implementation of Q-Learning and Pygame to simulate a self-driving car.
Python
5
star
13

One-Shot-Learning-to-Classify-Omniglot-data

Basic Implementation of One Shot Learning
Python
4
star
14

Android_OpenCV_Scan2Excel

Android app to convert scanned tabular digit data to Excel using Tensorflow. [Incomplete]
C++
3
star
15

Applied-ML-Classification

Implementing ML Classification algorithms on different datasets.
Jupyter Notebook
3
star
16

PyDinoAI

Training a CNN to play the chrome://dino game by itself.
Jupyter Notebook
3
star
17

Train-and-Test-MNIST

Training on the MNIST Data; Saving the trained model; Testing on handwritten digits. Using Tensorflow.
Python
3
star
18

Projects

All major projects stored at one place for easy access.
Jupyter Notebook
2
star
19

Image-Tagging

Auto-image-tagging using TensorFlow
Python
2
star
20

Amazon-Job-Search

Scraping Amazon jobs filtered on the basis of domains, teams, roles and mainly qualifications. :)
Jupyter Notebook
2
star
21

Applied-ML-Clustering

Clustering Analysis on different datasets
Jupyter Notebook
1
star
22

US-Traffic-Analysis-in-Tableau

US Traffic Data Visualization using Tableau BI tool.
1
star
23

Artificial-Intelligence

Classical Artificial Intelligence Algorithms implemented in Java
Java
1
star
24

Python-Applications

Basic Python Games and Applications
Jupyter Notebook
1
star
25

Natural-Language-Processing

NLP notebooks from my website
Jupyter Notebook
1
star
26

The-Movie-Network-Server

Node Server for the Final Project of Web Development (CS5610) course.
JavaScript
1
star
27

Algorithmic-Problems

http://www.appliedprogramming.net/algorithmic-problems/home.html
Java
1
star
28

Human-Activity-Recognition

HAR using K-Nearest Neighbours which classifies 6 activities based on the KTH dataset
MATLAB
1
star
29

Popular-Movies-Stage-2

Project 2 of the Android Developer Nanodegree
Java
1
star
30

Applied-ML-Regression

Regression Analysis on different datasets
Jupyter Notebook
1
star
31

Java-Applications

Basic Java Applications
Java
1
star