مكتبة C++ للتعرف على الصور:صور تحتوي على كلمات لسلسلة

StackOverflow https://stackoverflow.com/questions/462860

سؤال

هل يعرف أحد مكتبة C++ لالتقاط صورة وإجراء التعرف على الصور عليها بحيث يمكنها العثور على الحروف بناءً على خط معين و/أو ارتفاع الخط؟حتى الخط الذي لا يسمح لك بتحديد الخط سيكون أمرًا رائعًا (على سبيل المثال:قراءة الحروف (صورة الصورة).

هل كانت مفيدة؟

المحلول

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

لقد وجدت بعض النصائح الجيدة حقًا من خلال تجربة Tesseract والتي تستحق المشاركة.في الأساس كان علي أن أقوم بالكثير من المعالجة المسبقة للصورة.

  1. تكبير/تصغير حجم الصورة المدخلة إلى 300 نقطة في البوصة.
  2. إزالة اللون من الصورة.المقياس الرمادي جيد.لقد استخدمت بالفعل عتبة التردد وجعلت مدخلاتي بالأبيض والأسود.
  3. قم بإزالة الملفات غير الضرورية من صورتك.بالنسبة لجميع العناصر الثلاثة المذكورة أعلاه، استخدمت netbpm (مجموعة من أدوات معالجة الصور لنظام التشغيل Unix) للوصول إلى النقطة التي كنت أحصل فيها على دقة تصل إلى 100 بالمائة تقريبًا لما أحتاج إليه.

إذا كان لديك خطًا مخصصًا للغاية واستخدمت tesseract بمفرده، فيجب عليك "تدريب" النظام - وعليك في الأساس تغذية مجموعة من بيانات التدريب.تم توثيق هذا جيدًا على موقع tesseract-ocr.تقوم بشكل أساسي بإنشاء "لغة" جديدة للخط الخاص بك وتمريرها باستخدام المعلمة -l.

آلية التدريب الأخرى التي وجدتها كانت مع Ocropus باستخدام التدريب على الشبكة العصبية (bpnet).يتطلب الأمر الكثير من بيانات الإدخال لبناء نموذج إحصائي جيد.

من حيث استدعاء Tesseract/Ocropus كلاهما C++.لن يكون الأمر بهذه البساطة مثل ReadLines(Image) ولكن هناك واجهة برمجة تطبيقات يمكنك التحقق منها.يمكنك أيضًا الاستدعاء عبر سطر الأوامر.

نصائح أخرى

وحين لا أستطيع أن يوصي واحد على وجه الخصوص، على المدى كنت تبحث عن OCR (التعرف الضوئي على الحروف).

وهناك تسراكت-التعرف الضوئي على الحروف التي هي مكتبة المهنية للقيام بذلك.

ومن هناك موقع على شبكة الإنترنت

<اقتباس فقرة>   

وكان المحرك تسراكت OCR واحدة من أكبر 3 محركات في اختبار دقة 1995 UNLV. بين عامي 1995 و 2006، وكان القليل من العمل المنجز على ذلك، لكنه على الأرجح واحدة من المصادر المفتوحة الأكثر دقة محركات OCR المتاحة

وأعتقد أن ما تريده هو التخمين . تستخدم ليكون المشروع libgocr. أنا لم تستخدم لبضع سنوات ولكن كان عليه أن يكون موثوقة جدا إذا قمت بإعداد مفتاح.

تسراكت OCR مكتبة يعطي نتائج دقيقة جدا، ولها C ومكتبة C ++. وكانت نتائجي الأولية حوالي 80٪ دقيقة، ولكن تطبيق ما قبل المعالجة على الصور قبل توريد في لOCR كانت النتائج حوالي 95٪ دقيقة. ما هو قبل تجهيزها:

1) الصورة (B & W عملت Binarize أفضل بالنسبة لي). كيف يمكن القيام به

2) إعادة تجميع عينة عشوائية صورتك إلى 300 نقطة في البوصة

و3) حفظ الصورة في شكل ضياع، مثل LZW TIFF أو المجموعة CCITT 4 TIFF.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top