1. منتجات
  2.   OCR
  3.   C++
  4.   Guten OCR
 
  

مكتبة جافاسكريبت مجانية لاستخراج النص من الصور والنماذج الممسوحة

مكتبة جافاسكريبت مفتوحة المصدر للتعرف الضوئي على الأحرف (OCR) لاستخراج النص من الصور والمستندات الممسوحة بالأبيض والأسود مع دعم معالجة الصور والقوالب في الويب أو تطبيقات Node.js.

في العالم الرقمي الحديث، تلعب تقنية التعرف الضوئي على الأحرف (OCR) دورًا حاسمًا في تحويل الصور الممسوحة، الملاحظات المكتوبة يدويًا، أو المستندات المطبوعة إلى بيانات قابلة للتحرير والبحث. بالنسبة لمطوري جافاسكريبت الذين يبحثون عن حل خفيف الوزن ومفتوح المصدر، تقدم Guten OCR خيارًا جذابًا. تم تصميم محرك OCR القائم على جافاسكريبت هذا مع التركيز على البساطة، مما يجعله مثاليًا لتضمين ميزات OCR مباشرة في التطبيقات المستندة إلى المتصفح أو Node.js. هناك عدة ميزات مهمة في المكتبة، مثل التعرف على الأحرف عبر القوالب، عتبة الصورة وتثنائيها، تجزئة الأحرف، مطابقة القوالب وتجميع النص، دعم قاعدة الشيفرة المعيارية وغيرها. يركز على التعرف على النص المطبوع من المستندات الممسوحة بالأبيض والأسود وهو الأنسب للنص المنسق جيدًا مثل الكتب أو النماذج.

Guten OCR هو محرك OCR جافاسكريبت مفتوح المصدر تم إنشاؤه بواسطة Gutenye. على عكس أدوات OCR الضخمة التي تتطلب تبعيات خارجية أو إعدادًا واسعًا، تم كتابة Guten OCR بالكامل بجافاسكريبت، مما يعني أنه يمكن تشغيله في متصفح الويب أو على الخادم باستخدام Node.js. تستخدم المكتبة تقنيات معالجة صور أساسية لتجزئة الأحرف وتحديدها باستخدام نظام التعرف على نمط الأحرف. رغم أنه قد لا ينافس بعد محركات OCR التجارية مثل Tesseract من حيث دعم اللغات المتعددة أو النص المكتوب يدويًا، فإن بساطته وقابليته للتعديل تجعله خيارًا رائعًا للمشاريع التعليمية، وإثبات المفاهيم، أو ميزات OCR المدمجة في تطبيقات الويب المخصصة. على عكس Tesseract أو غيرها من المحركات الأكبر، تم تصميم Guten OCR ليكون خفيف الوزن ومركزًا عمدًا—مما يجعله نقطة انطلاق ممتازة لأولئك الذين يرغبون في فهم كيفية عمل OCR من الداخل.

Previous Next

البدء مع Guten OCR

الطريقة الموصى بها لتثبيت Guten OCR هي باستخدام Brew. يرجى استخدام الأمر التالي للحصول على تثبيت سلس

تثبيت Guten OCR عبر Brew

 brew install git-lfs 

تثبيت Guten OCR عبر GitHub

 git clone git@github.com:gutenye/ocr.git 

يمكنك أيضًا تثبيته يدويًا؛ قم بتنزيل أحدث ملفات الإصدار مباشرةً من GitHub مستودع.

معالجة الصور مسبقًا قبل عمليات OCR

مكتبة Guten OCR المفتوحة المصدر مكتوبة بالكامل بجافاسكريبت، مما يجعلها متوافقة مع بيئات المتصفح وNode.js. تتضمن وظائف معالجة صور مدمجة لتحسين دقة التعرف. تدعم التثنائي (تحويل إلى أبيض وأسود)، تقليل الضوضاء، تصحيح الميل والمزيد. يوضح المثال التالي كيف يمكن للمطورين تطبيق خطوات معالجة صور متعددة قبل إجراء عملية OCR على الصور.

كيفية تطبيق معالجة الصور مسبقًا قبل عملية OCR عبر مكتبة جافاسكريبت؟

const { preprocess } = require('guten-ocr');

// Apply multiple preprocessing steps
const processedImage = preprocess(imageData, [
  'grayscale',    // Convert to grayscale
  'binarize',     // Convert to black and white
  'deskew',       // Correct skew
  'denoise'       // Reduce noise
]);

// Then perform OCR on the processed image
ocr.recognize(processedImage).then(/* ... */);

التعرف على الأحرف عبر القوالب

توفر مكتبة جافاسكريبت Guten OCR دعمًا كاملاً لأداء عمليات OCR باستخدام القوالب داخل تطبيقات جافاسكريبت. في صميم Guten OCR يوجد نظام مطابقة القوالب. بدلاً من تدريب نموذج تعلم آلي، يستخدم أنماط أحرف معرفة مسبقًا. يجعل هذا النظام أسرع وأسهل للفهم لكنه أكثر حساسية لتناسق الخط والتخطيط. لأداء هذه المهمة، تقوم المكتبة برسم كل حرف (A–Z، a–z، 0–9، إلخ) في لوحة رسم ثم تتحول المصفوفة الثنائية لكل حرف إلى قالب مرجعي. عند تحليل صورة، تقارن المكتبة مقاطع الصورة بهذه القوالب للعثور على أفضل تطابق. تقوم بذلك باستخدام مزيج من مسح الخطوط العمودية والأفقية لتحديد الصناديق المحيطة.

تجزئة الأحرف عبر مكتبة OCR

تمكن مكتبة جافاسكريبت المفتوحة المصدر Guten OCR مطوري البرمجيات من تنفيذ تجزئة الأحرف بسهولة. بمجرد تثنائي الصورة، تكون الخطوة التالية هي تجزئة الأحرف الفردية. تقوم Guten OCR بمسح الصفوف والأعمدة لاكتشاف المناطق ذات البكسلات السوداء الكثيفة، وتفصلها إلى أحرف محتملة. يوضح المثال التالي كيف يمكن للمطورين تنفيذ تجزئة الأحرف باستخدام مكتبة OCR جافاسكريبت.

كيفية تنفيذ تجزئة الأحرف باستخدام مكتبة جافاسكريبت؟

const segment = require('guten-ocr/segment');
const boxes = segment(binarized); // returns array of [x, y, width, height]
 عربي