A Node.js wrapper for the Python EasyOCR library
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.
npm install node-easyocrNote: 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.
node-easyocr supports both ES6 and CommonJS module systems. Here are examples for both:
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();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.
The main class for interacting with EasyOCR.
Initializes the OCR reader with the specified languages.
languages: Array of language codes to use for OCR. Defaults to['en'](English).
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;
}Closes the OCR reader and releases resources.
- Node.js 12.0.0 or higher
 - Python 3.6 or higher
 - pip (Python package installer)
 
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
You can reach out to the maintainer on X (Twitter): @saidbyvj
If you find a bug or have a suggestion, please file an issue on the GitHub repository.