explaingit

openalpr/openalpr

11,400C++Audience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

An open source library and command-line tool that reads license plate numbers from photos or video, returning the plate text and a confidence score, with bindings for six programming languages.

Mindmap

mindmap
  root((OpenALPR))
    What it does
      Reads license plates
      Images and video
      Confidence scores
    Input types
      Single image
      Video file
      Live stream
    Language bindings
      Python
      Node.js
      Java
      C# and Go
    Setup options
      Linux apt-get
      Windows binaries
      Docker one-liner
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build a parking lot system that automatically reads vehicle license plates from camera feeds.

USE CASE 2

Add license plate recognition to a security or surveillance application using Python or Node.js bindings.

USE CASE 3

Process a batch of vehicle images and extract plate numbers as JSON for storage in a database.

USE CASE 4

Integrate plate reading into a mobile app via the community Android or iOS ports.

Tech stack

C++PythonNode.jsJavaC#GoOpenCVTesseract

Getting it running

Difficulty · moderate Time to first run · 30min

Requires Tesseract OCR and OpenCV when building from source, pre-compiled binaries available on Windows.

AGPL-3.0, open source, but any derivative software must also be released as open source. A commercial license is available separately for businesses needing different terms.

In plain English

OpenALPR is an open source library that reads license plate numbers from images and video. You point it at a photo of a car, and it returns the text on the plate along with a confidence score. It can process a single image, a video file, or a live video stream. The tool is available as a command-line program called alpr. Running it on an image takes a single command, and it outputs a ranked list of the most likely plate readings. For example, given an image of a plate that reads PE3R2X, it might return ten candidates in order of confidence, with the correct reading at the top. There is also a JSON output mode for integrating results into other software, and a clock mode that reports how long processing took. The library is written in C++ and has bindings for Python, Node.js, Java, C#, and Go, so developers can call it from many programming languages. It supports plate formats for both the US and Europe, and optionally lets you specify a regional pattern (such as a US state) to improve accuracy by filtering results against known plate formats. Community-maintained ports also exist for Android and iOS. On Linux, installation is a single apt-get command. On Windows, pre-compiled binaries are available. Building from source requires two additional libraries: Tesseract OCR (for character recognition) and OpenCV (for image processing). Docker is also supported with a one-liner build-and-run workflow. The license is Affero GPLv3, which requires that derivative works also be open source. A commercial license is available for businesses that need different terms.

Copy-paste prompts

Prompt 1
Using OpenALPR's Python bindings, write code to read a license plate from a JPG image file and print the top result with its confidence score.
Prompt 2
Show me the alpr command-line instruction to process a video file and output all license plate readings in JSON format.
Prompt 3
How do I install OpenALPR on Ubuntu and run it against my first image to verify the setup is working?
Prompt 4
I'm building a parking management system. Show me how to integrate OpenALPR with a Node.js server to read plates from a live webcam stream.
Open on GitHub → Explain another repo

← openalpr on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.