แปลงรูปภาพเป็นข้อความ (OCR: Optical Character Recognition) ด้วย Tesseract.js

 


Tesseract.js เป็นไลบรารี OCR (Optical Character Recognition) ที่ช่วยให้เราสามารถแปลงรูปภาพเป็นข้อความได้โดยใช้ JavaScript โดยไม่ต้องติดตั้งซอฟต์แวร์เพิ่มเติม เนื่องจากมันทำงานบน WebAssembly


ติดตั้งและนำเข้า Tesseract.js

1. ใช้ผ่าน CDN (แนะนำสำหรับเว็บเบราว์เซอร์)

คุณสามารถเพิ่มสคริปต์นี้ไปที่ <script> ใน HTML ของคุณ:


<script src="https://cdn.jsdelivr.net/npm/tesseract.js"></script>


2. ติดตั้งผ่าน NPM (สำหรับ Node.js)

ถ้าคุณใช้งานในโปรเจกต์ Node.js หรือ Webpack ให้ติดตั้งโดยใช้คำสั่ง:


npm install tesseract.js

ใช้งาน OCR ใน JavaScript

ตัวอย่างใช้งาน OCR จาก URL รูปภาพ


<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Tesseract.js Example</title> <script src="https://cdn.jsdelivr.net/npm/tesseract.js"></script> </head> <body> <h2>แปลงภาพเป็นข้อความด้วย Tesseract.js</h2> <input type="file" id="imageInput"> <p id="output">ผลลัพธ์: กำลังประมวลผล...</p> <script> document.getElementById('imageInput').addEventListener('change', function(event) { const file = event.target.files[0]; if (!file) return; const reader = new FileReader(); reader.onload = function() { Tesseract.recognize( reader.result, // อ่านไฟล์เป็น base64 'eng', // เลือกภาษา (เช่น 'tha' สำหรับภาษาไทย) { logger: m => console.log(m) // แสดงสถานะการประมวลผล } ).then(({ data: { text } }) => { document.getElementById('output').innerText = "ผลลัพธ์: " + text; }); }; reader.readAsDataURL(file); }); </script> </body> </html>

การใช้งาน OCR ใน Node.js


const Tesseract = require('tesseract.js'); Tesseract.recognize( 'https://tesseract.projectnaptha.com/img/eng_bw.png', // URL หรือ path ของภาพ 'eng', // ภาษา (เปลี่ยนเป็น 'tha' สำหรับภาษาไทย) { logger: m => console.log(m) // ดูสถานะการประมวลผล } ).then(({ data: { text } }) => { console.log("ข้อความที่อ่านได้:", text); });

การใช้งานหลายภาษา (ไทย + อังกฤษ)


Tesseract.recognize( 'path/to/image.png', 'eng+tha', // OCR ทั้งภาษาอังกฤษและภาษาไทย { logger: m => console.log(m) } ).then(({ data: { text } }) => { console.log("ผลลัพธ์ OCR:", text); });

สรุป

  • ใช้ Tesseract.recognize(image, language, options) เพื่อแปลงภาพเป็นข้อความ
  • สามารถโหลดผ่าน CDN หรือ npm ได้
  • รองรับหลายภาษา (eng, tha, ฯลฯ)
  • ใช้ในเบราว์เซอร์หรือ Node.js ได้
  • มี logger เพื่อดูความคืบหน้าขณะ OCR

หากต้องการ OCR ภาษาไทยให้ใช้ 'tha' หรือ 'eng+tha'


ที่มา:  https://github.com/naptha/tesseract.js/

แสดงความคิดเห็น (0)
ใหม่กว่า เก่ากว่า