1.0.9 • Published 10 months ago

node-easyocr v1.0.9

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

node-easyocr

A Node.js wrapper for the Python EasyOCR library

Description

node-easyocr is a Node.js wrapper for the popular Python EasyOCR library, allowing you to perform Optical Character Recognition (OCR) in your Node.js applications. This package provides a simple interface to use EasyOCR's functionality within your JavaScript/TypeScript projects.

Installation

npm install node-easyocr

Note: This package requires Python 3.6+ and pip to be installed on your system. The necessary Python dependencies will be installed automatically during the npm installation process.

Usage

node-easyocr supports both ES6 and CommonJS module systems. Here are examples for both:

ES6 Usage

import { EasyOCR } from 'node-easyocr';

const ocr = new EasyOCR();

async function main() {
  try {
    // Initialize the OCR reader with desired languages
    await ocr.init(['en', 'fr']);
    console.log('OCR initialized successfully');

    const imagePaths = ['path/to/image1.png', 'path/to/image2.png'];

    for (const imagePath of imagePaths) {
      console.log(`Processing image: ${imagePath}`);
      console.time('OCR Process');
      const result = await ocr.readText(imagePath);
      console.timeEnd('OCR Process');

      console.log('OCR Result:');
      result.forEach((item, index) => {
        console.log(`Line ${index + 1}:`);
        console.log(`  Text: ${item.text}`);
        console.log(`  Confidence: ${(item.confidence * 100).toFixed(2)}%`);
        console.log(`  Bounding Box: ${JSON.stringify(item.bbox)}`);
        console.log('---');
      });
    }
  } catch (error) {
    console.error('OCR Error:', error.message);
  } finally {
    await ocr.close();
  }
}

main();

CommonJS Usage

const { EasyOCR } = require('node-easyocr');

const ocr = new EasyOCR();

async function main() {
  try {
    // Initialize the OCR reader with desired languages
    await ocr.init(['en', 'fr']);
    console.log('OCR initialized successfully');

    const imagePaths = ['path/to/image1.png', 'path/to/image2.png'];

    for (const imagePath of imagePaths) {
      console.log(`Processing image: ${imagePath}`);
      console.time('OCR Process');
      const result = await ocr.readText(imagePath);
      console.timeEnd('OCR Process');

      console.log('OCR Result:');
      result.forEach((item, index) => {
        console.log(`Line ${index + 1}:`);
        console.log(`  Text: ${item.text}`);
        console.log(`  Confidence: ${(item.confidence * 100).toFixed(2)}%`);
        console.log(`  Bounding Box: ${JSON.stringify(item.bbox)}`);
        console.log('---');
      });
    }
  } catch (error) {
    console.error('OCR Error:', error.message);
  } finally {
    await ocr.close();
  }
}

main();

For more examples, please check the examples/basic directory in the project repository.

API

EasyOCR

The main class for interacting with EasyOCR.

init(languages: string[] = ['en']): Promise<void>

Initializes the OCR reader with the specified languages.

  • languages: Array of language codes to use for OCR. Defaults to ['en'] (English).

readText(imagePath: string): Promise<OCRResult[]>

Performs OCR on the specified image.

  • imagePath: Path to the image file.

Returns a Promise that resolves to an array of OCRResult objects:

interface OCRResult {
  bbox: number[][];
  text: string;
  confidence: number;
}

close(): Promise<void>

Closes the OCR reader and releases resources.

Requirements

  • Node.js 12.0.0 or higher
  • Python 3.6 or higher
  • pip (Python package installer)

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

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

Contact

You can reach out to the maintainer on X (Twitter): @saidbyvj

Issues

If you find a bug or have a suggestion, please file an issue on the GitHub repository.

1.0.9

10 months ago

1.0.8

10 months ago

1.0.7

10 months ago

1.0.6

10 months ago

1.0.5

10 months ago

1.0.4

10 months ago

1.0.3

10 months ago

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago