Introduction to node-tesseract-ocr
Node-tesseract-ocr is a powerful and easy-to-use OCR (Optical Character Recognition) library for Node.js, which allows developers to extract text from images and scanned documents effortlessly. This comprehensive guide will introduce you to the capabilities of node-tesseract-ocr and provide a plethora of API examples to get you started!
Getting Started
First, you need to install the node-tesseract-ocr package via npm:
npm install node-tesseract-ocr
Once installed, you can begin using this powerful OCR tool to process your images and extract text.
Basic API Usage
The core functionality of node-tesseract-ocr revolves around the `recognize()` method. Here is an example of how to use it:
const tesseract = require("node-tesseract-ocr"); const config = { lang: "eng", oem: 1, psm: 3, }; tesseract .recognize("path/to/image.jpg", config) .then((text) => { console.log("Recognized text:", text); }) .catch((error) => { console.error("OCR failed:", error); });
Advanced Configurations
You can customize the OCR process using various configurations:
const config = { lang: "eng", oem: 1, psm: 6, tessedit_char_whitelist: "0123456789", }; tesseract .recognize("path/to/numeric_image.png", config) .then((text) => { console.log("Recognized numbers:", text); }) .catch((error) => { console.error("OCR failed:", error); });
Batch Processing of Images
With node-tesseract-ocr, you can also process multiple images in a batch:
const images = ["image1.jpg", "image2.png", "image3.bmp"]; const processImages = async (imagePaths) => { for (const imagePath of imagePaths) { try { const text = await tesseract.recognize(imagePath, config); console.log(`Recognized text from ${imagePath}:`, text); } catch (error) { console.error(`OCR failed for ${imagePath}:`, error); } } }; processImages(images);
Language Support
Node-tesseract-ocr supports multiple languages. You just need to change the `lang` configuration:
const config = { lang: "spa", // Spanish oem: 1, psm: 3, }; tesseract .recognize("path/to/spanish_text_image.jpg", config) .then((text) => { console.log("Recognized text:", text); }) .catch((error) => { console.error("OCR failed:", error); });
Integration with an Application
Let’s integrate node-tesseract-ocr with an Express application to create a simple OCR API:
const express = require("express"); const fileUpload = require("express-fileupload"); const tesseract = require("node-tesseract-ocr"); const app = express(); const config = { lang: "eng", oem: 1, psm: 3, }; app.use(fileUpload()); app.post("/ocr", (req, res) => { if (!req.files || !req.files.image) { return res.status(400).send("No image uploaded."); } const image = req.files.image; tesseract .recognize(image.data, config) .then((text) => { res.send({ text }); }) .catch((error) => { res.status(500).send("OCR failed."); }); }); app.listen(3000, () => { console.log("OCR API server is running on port 3000"); });
This simple Express application accepts image uploads and returns the recognized text.