diff --git a/README.md b/README.md index 2586aa6..dce56ae 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,80 @@ # openalpr-android -Android Automatic License Plate Recognition library based on http://www.openalpr.com + +OpenALPR is an open source Automatic License Plate Recognition library written in C++ with bindings in C#, Java, Node.js, and Python. This project ports this library to Android. + +![Screenshot](images/screenshot.png "Main Activity Sample application") + +# Gradle Dependency + +## Repository + +First, add the following to your app's `build.gradle` file: + +```Gradle +repositories { + maven { url "https://jitpack.io" } +} +``` + +Them include the openalpr-android dependency: + +```gradle +dependencies { + + // ... other dependencies here. + // Set the transitive = false if you already have the Design Support Library dependency. + compile('com.github.SandroMachado:openalpr-android:1.0.0@aar') { + transitive = true + } +} +``` + +# Usage + +## Code + +Copy the [OpenALPR configuration file](./openalpr.conf) to your android project assets directory `/main/assets/runtime_data/openalpr.conf` and update the `runtime_dir` to your project directory (for instance, for the sample project the directory is: `runtime_dir = /data/data/com.sandro.openalprsample/runtime_data`). After that just follow the code example bellow. To see a full example check the [sample application](./Sample/OpenALPRSample/app/src/main/java/com/sandro/openalprsample/MainActivity.java). + +```Java + +static final String ANDROID_DATA_DIR = "/data/data/com.sandro.openalprsample"; + +final String openAlprConfFile = ANDROID_DATA_DIR + File.separatorChar + "runtime_data" + File.separatorChar + "openalpr.conf"; + +String result = OpenALPR.Factory.create(MainActivity.this, ANDROID_DATA_DIR).recognizeWithCountryRegionNConfig("us", "", image.getAbsolutePath(), openAlprConfFile, 10); +``` + +## Interface + +```Java +/* + Method interface. +*/ + +/** + * Recognizes the licence plate. + * + * @param country - Country code to identify (either us for USA or eu for Europe). Default=us. + * @param region - Attempt to match the plate number against a region template (e.g., md for Maryland, ca for California). + * @param imgFilePath - Image containing the license plate. + * @param configFilePath - Config file path (default /etc/openalpr/openalpr.conf) + * @param topN - Max number of possible plate numbers to return(default 10) + * + * @return - JSON string of results + */ + +public String recognizeWithCountryRegionNConfig(String country, String region, String configFilePath, String imgFilePath, int topN); + +``` +# Sample Application + +The repository also includes a [sample application](./Sample/OpenALPRSample) that can be tested with Android Studio. + +![Screencast](images/screencast.gif "Main Activity Sample application screencast") + +# Credits + + - [https://github.com/openalpr/openalpr](https://github.com/openalpr/openalpr) (the project repository) + - [https://github.com/sujaybhowmick/OpenAlprDroidApp](https://github.com/sujaybhowmick/OpenAlprDroidApp) (for the compiled sources and for the sample that helped me to port the project to an android library) + + diff --git a/images/screencast.gif b/images/screencast.gif new file mode 100644 index 0000000..458aab4 Binary files /dev/null and b/images/screencast.gif differ diff --git a/images/screenshot.png b/images/screenshot.png new file mode 100644 index 0000000..5b29cb9 Binary files /dev/null and b/images/screenshot.png differ