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

واجهة برمجة تطبيقات مجانية للتعرف الضوئي على الأحرف للمخطوطات الصينية

OCR مفتوح المصدر بلغة C++ لإجراء عمليات التعرف الضوئي على الأحرف على المخطوطات الصينية باستخدام المطابقة القائمة على القوالب، حيث يتم مطابقة الأحرف بكسل بكسل مع العينات المعروفة.

ما هو OCR المجاني بلغة C++؟

التعرف الضوئي على الأحرف (OCR) في الأنظمة غير اللاتينية — وخاصة الصينية— يطرح تحديات فريدة بسبب تعقيد وتنوع الأحرف. لحسن الحظ، توفر واجهة برمجة تطبيقات OCR المفتوحة المصدر بلغة C++ التي أنشأها سيباستيان ستارك حلاً نظيفًا وقابلًا للتوسيع مصممًا للتعرف على الأحرف الصينية المطبوعة أو المكتوبة يدويًا، خاصةً من مصادر المخطوطات. صُممت هذه الواجهة الخفيفة الوزن مع التركيز على البساطة والقدرة على التكيف، مما يتيح للمطورين تجربة التعرف على الأحرف باستخدام أساليب معالجة الصور الكلاسيكية بدلاً من نماذج التعلم الآلي الضخمة.

هذا المشروع ليس محرك OCR عصبيًا كامل النطاق مثل Tesseract. بل يتبع نهجًا مختلفًا: يستخدم المطابقة القائمة على القوالب، حيث يتم مطابقة الأحرف بكسل بكسل مع عينات معروفة. وهذا يجعله مثاليًا للاستخدام التعليمي، والبيئات المتحكم فيها، أو مهام التعرف المحددة مثل تحليل المخطوطات التاريخية، أو الأنماط الطباعية الصينية التقليدية، أو مجموعات بيانات الخط اليدوي المبسط. المشروع مناسب بشكل خاص للمطورين الذين يعملون في بيئات منخفضة الموارد، مثل أنظمة لينكس المدمجة، Raspberry Pi، أو أجهزة المسح الصناعية، لأنه لا يعتمد على تبعيات ثقيلة أو مكتبات تعلم عميق.

Previous Next

البدء مع OCR

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

تثبيت واجهة برمجة تطبيقات OCR عبر GitHub

تثبيت واجهة برمجة تطبيقات OCR عبر GitHub

 git clone https://github.com/sebastianstarke/OCR.git  

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

محرك OCR القائم على القوالب

توفر واجهة برمجة تطبيقات OCR المفتوحة المصدر للمخطوطات الصينية بلغة C++ دعماً كاملاً لاستخدام محرك OCR القائم على القوالب داخل تطبيقات C++. في صميم هذه المكتبة يكمن نظام مقارنة صور كلاسيكي: تُصبح صور الأحرف ثنائية ثم تُقارن بالقوالب باستخدام مقياس مسافة (عادةً مقارنة بكسل بكسل). بالنسبة للغة الصينية، يكون هذا مفيدًا جدًا عند التعامل مع الخطوط المتسقة أو المخطوطات المطبوعة.

كيف تُجري التعرف القائم على القوالب في تطبيقات C++؟

OCR::TemplateCollection templates;
templates.loadFromFolder("templates/"); // Load preprocessed characters

OCR::Recognizer recognizer(templates);
std::string recognizedText = recognizer.recognizeFromImage("scanned_page.png");

دعم معالجة ما قبل الصورة

توفر مكتبة OCR المفتوحة المصدر دعماً كاملاً لوظائف معالجة ما قبل الصورة داخل تطبيقات C++. تقدم المكتبة معالجة أساسية مثل العتبة والقص لتنظيف المدخلات المزعجة. غالبًا ما تُكتب المخطوطات الصينية على ورق قديم، لذا فإن تنظيف الصورة أمر أساسي للحصول على نتائج دقيقة. يوضح المثال التالي كيف يمكن للمطورين باستخدام بضع أسطر من كود C++ تنفيذ معالجة ما قبل الصورة.

كيف تُجري معالجة ما قبل الصورة قبل عمليات OCR داخل تطبيقات C++؟

OCR::ImageProcessor processor;
cv::Mat cleanImage = processor.binarize("raw_scan.png");

دعم التحولات المورفولوجية

تبدأ العملية بسلسلة من التحولات المورفولوجية. هذه عمليات أساسية في معالجة الصور تُغيّر هندسة المميزات في الصورة. في هذا السياق، تُستخدم لتنظيف صورة المخطوطة، إزالة الضوضاء، وتحضير الأحرف للتقسيم.

 عربي