node-openalpr-shinobi
v1.1.4
Published
Node.js OpenALPR Bindings
Downloads
4
Maintainers
Readme
node-openalpr
This package binds OpenALPR with Node.js
Version: 1.1.3 - Released August 2nd, 2017
Changelog:
1.1.3 - Updates to be compatible with OpenALPR 2.3.0
1.1.2 - Add country feature
1.1.1 - Fix for building on OSX
1.1.0 - Updated OpenALPR to version 2.2, should fix Linux and OSX builds
1.0.9 - Updated OpenALPR build and US region data
1.0.7 - Added the capability to specify regions
1.0.6 - Slowed down the event loop to 30 times per second
1.0.1:5 - Documentation changes
1.0.0 - Initial release
Installation and Example
Use npm to get the node-openalpr package. We'll attempt to use node-pre-gyp to compile from source, but if that's not possible we'll fallback to precompiled binaries.
Linux
- Install OpenALPR
- Run
npm install node-openalpr
Windows
- Run
npm install node-openalpr
OS X
- Install OpenALPR
- OpenALPR
- using Homebrew(openalpr v2.2.0)
- Run
npm install node-openalpr
Example
var openalpr = require ("node-openalpr");
function identify (id, path) {
console.log (openalpr.IdentifyLicense (path, function (error, output) {
var results = output.results;
console.log (id +" "+ output.processing_time_ms +" "+ ((results.length > 0) ? results[0].plate : "No results"));
if (id == 349) {
console.log (openalpr.Stop ());
}
}));
}
// Basic starting
openalpr.Start();
// European detection starting
// openalpr.Start(null, null, null, true, 'eu');
openalpr.GetVersion ();
for (var i = 0; i < 350; i++) {
identify (i, "lp.jpg");
}
Methods
This is a breakdown of all of the methods available for node-openalpr. Start needs to be called before any other method.
openalpr.Start ([config[, runtime[, count[, start_queue]]]])
- Initializes OpenALPR with default settings- config - Path to configuration file. On Windows defaults to the config file in node-openalpr directory, on Linux defaults to openalpr installation
- runtime - Path to runtime data. On Windows defaults to "openalpr_runtime" folder in node-openalpr directory, on Linux defaults to openalpr installation
- count - Number of concurrent OpenALPR processes to run - defaults to CPU core count
- start_queue - Auto start queue monitoring thread - defaults to true
openalpr.Stop ()
- Stops the OpenALPR processes and clears out any queued imagesopenalpr.StartQueue ()
- Starts the OpenALPR queue monitoring thread (normally started automatically after calling Start ())openalpr.StopQueue ()
- Stops the OpenALPR queue monitoring threadopenalpr.queueLoop ()
- Method used in checking queue - can be called manually if start_queue is false for finer controlopenalpr.IdentifyLicense (path, options/callback[, callback])
- Begins the process of identifying a license from the given image, returns "working" or "queued" status result- path - Path to image - if image does not exist an exception will be thrown
- callback/options - Additional options for the image or a callback
- options.state (string) - State ("oh") license plates are in for additional validation
- options.prewarp (string) - Prewarp configuration information
- options.detectRegion (boolean) - Use detect region functionality of OpenALPR? (slower)
- options.regions (array) - Specify the regions of the image to work on (format: [{ x: 0, y: 0, width: 0, height: 0 }, ...]
- callback - Callback with results: function (errors, output)
openalpr.GetVersion ()
- Get the version of OpenALPR currently being run against
How to Compile
Windows
- Download and install Visual Studio 2013/2015
- Run PowerShell ISE as an administrator and execute: Set-ExecutionPolicy RemoteSigned
- Run openalpr-install.ps1
- Take output from openalpr/windows/build/dist and put into "lib" and "release/win32" folder in node-openalpr
- Run npm install
Linux
- Run openalpr-install.sh
- Run npm install
Features, Bugs and Collaborating
All of the code is provided as-is. We will not provide on-going support for any bugs that may be found. Please submit bug and features requests - we will review them but we do not garunteed that they will be addressed. Pull requests are welcome and we'll review them as quickly as we can.