Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/techbyvj/license-plate-recognition-nodejs

License plate recognition in Nodejs
https://github.com/techbyvj/license-plate-recognition-nodejs

anpr easyocr license-plate-detection license-plate-reader license-plate-recognition lpr nodejs number number-plate-detection number-plate-reader number-plate-recognition number-plate-scanner plate-recognition tesseract-ocr

Last synced: about 1 month ago
JSON representation

License plate recognition in Nodejs

Awesome Lists containing this project

README

        

# License Plate Recognizer

A Node.js package for license plate recognition using OpenCV and OCR.

## Description

This package provides a robust solution for recognizing license plates in images. It uses computer vision techniques with OpenCV for plate detection and multiple OCR engines for text extraction.

## Features

- License plate detection in images
- Text recognition from detected license plates using multiple OCR engines (Tesseract and EasyOCR)
- Logging of recognition process
- Saving of original and processed images

## Installation

To install the package, run:

```bash
npm install license-plate-recognizer
```

## Prerequisites

- Node.js (version 12 or higher recommended)
- OpenCV (automatically installed via @u4/opencv4nodejs)
- Tesseract OCR (must be installed separately on your system)

## Usage

Here's a basic example of how to use the package:

```typescript
import { recognizeLicensePlate } from 'license-plate-recognizer';

const imagePath = 'path/to/your/image.jpg';
recognizeLicensePlate(imagePath)
.then(([licensePlate, text]) => {
if (licensePlate && text) {
console.log(`Detected license plate: ${text}`);
} else {
console.log('No license plate detected');
}
})
.catch(error => console.error('Error:', error));
```

## API

### `recognizeLicensePlate(imagePath: string): Promise<[cv.Mat | null, string | null]>`

Processes an image and attempts to recognize a license plate.

- `imagePath`: The path to the image file.
- Returns: A Promise that resolves to a tuple containing:
- The detected license plate image (`cv.Mat` object) or `null` if not found.
- The recognized text from the license plate or `null` if not recognized.

## Dependencies

This package relies on the following main dependencies:

- [@u4/opencv4nodejs](https://www.npmjs.com/package/@u4/opencv4nodejs): For image processing and computer vision tasks.
- [node-tesseract-ocr](https://www.npmjs.com/package/node-tesseract-ocr): For Optical Character Recognition using Tesseract.
- [node-easyocr](https://www.npmjs.com/package/node-easyocr): For Optical Character Recognition using EasyOCR.
- [winston](https://www.npmjs.com/package/winston): For logging.

Make sure to install Tesseract OCR on your system for text recognition to work properly. EasyOCR is included as a fallback OCR engine.

## Output

Processed images are saved in an `output` directory, organized by date. The original image and the cropped license plate image (if detected) are both saved.

## Development

To set up the development environment:

1. Clone the repository:
```bash
git clone https://github.com/techbyvj/license-plate-recognition-nodejs.git
```
2. Install dependencies:
```bash
npm install
```
3. Build the project:
```bash
npm run build
```

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## License

This project is licensed under the ISC License.

## Issues

If you encounter any problems or have suggestions, please file an issue on the [GitHub repository](https://github.com/techbyvj/license-plate-recognition-nodejs/issues).

## Connect

Follow the author on X (Twitter): [@saidbyvj](https://x.com/saidbyvj)