تتيح لك تقنية OCR(التعرف الضوئي على الأحرف) قراءة وتحويل النص في الصور أو المستندات الممسوحة ضوئيًا إلى النموذج المقروء آليًا. يحتوي OCR على حالات استخدام متنوعة تتضمن قراءة الرموز من القسائم ، وجعل النص قابلاً للتحرير ، ومخازن الخدمة الذاتية ، وتحويل المستندات المطبوعة إلى تنسيقات رقمية ، وما إلى ذلك. تتوفر العديد من أدوات ومكتبات التعرف الضوئي على الحروف في السوق ، ومع ذلك ، فإن موثوقية نتائج التعرف الضوئي على الحروف هي عامل رئيسي. في هذه المقالة ، سأوضح لك كيفية إنشاء تطبيق OCR الخاص بك وتحويل الصور إلى نص برمجيًا باستخدام C++.
- مكتبة C++ OCR لتحويل الصورة إلى نص
- تحويل صفحة الصورة إلى نص باستخدام C++
- قم بإجراء OCR لصورة بخط مفرد باستخدام C++
- تحويل منطقة معينة من الصورة إلى نص في C++
مكتبة C++ OCR لتحويل الصورة إلى نص
تقدم Aspose مكتبة قوية لـ C++ OCR تستخدم التعلم العميق لتزويدك بمزيد من الموثوقية وقريبًا من نتائج التعرف الضوئي على الحروف الدقيقة. يمكنك تنزيل ملفات المكتبة بالإضافة إلى نموذج مشروع من GitHub.
تحويل صفحة الصورة إلى نص باستخدام C++
يتيح أولاً فحص السيناريو الذي تحتوي فيه الصورة على نص متعدد الأسطر. قد يكون هذا هو الحال عندما يكون لديك كتاب ممسوح ضوئيًا حيث تحتوي كل صفحة من الكتاب على مجموعة من سطور النص. فيما يلي خطوات تحويل الصورة إلى نص في هذه الحالة.
- عيّن مسار الصورة في متغير سلسلة.
- قم بإعداد مخزن مؤقت لتخزين نتائج التعرف الضوئي على الحروف.
- قم بتنفيذ OCR باستخدام وظيفة aspose :: ocr :: page (const char \ imagepath، wchart \ buffer، sizet buffersize).
- اطبع النتائج أو احفظها في ملف.
يوضح نموذج التعليمات البرمجية التالي كيفية إجراء OCR وتحويل الصورة إلى نص باستخدام C++.
std::string image_path = "sample.png";
// إعداد المخزن المؤقت للنتيجة (في الرموز ، len_byte = len * sizeof (wchar_t))
const size_t len = 4096;
wchar_t buffer[len] = { 0 };
// قم بإجراء التعرف الضوئي على الحروف
size_t size = aspose::ocr::page(image_path.c_str(), buffer, len);
//نتيجة الطباعة
std::wcout << buffer << L"\n";
قم بإجراء OCR لصورة بخط مفرد باستخدام C++
في المثال السابق ، قمنا بتحويل صورة بها أسطر نصية متعددة. ومع ذلك ، قد تكون هناك حالة عندما تحتوي الصورة على سطر واحد فقط من النص مثل التسمية التوضيحية أو الشعار. فيما يلي خطوات إجراء التعرف الضوئي على الحروف في مثل هذه الحالات.
- استخدم متغير سلسلة لتعيين مسار الصورة.
- قم بإنشاء مخزن مؤقت لتخزين نتائج التعرف الضوئي على الحروف.
- قم بتنفيذ OCR باستخدام وظيفة aspose :: ocr :: line (const char \ imagepath، wchart \ buffer، sizet buffersize).
- احفظ أو اطبع نتائج التعرف الضوئي على الحروف.
يوضح نموذج التعليمات البرمجية التالي كيفية إجراء OCR على صورة بسطر واحد من النص باستخدام C++.
std::string image_path = "sample_line.jpg";
// إعداد المخزن المؤقت للنتيجة (في الرموز ، len_byte = len * sizeof (wchar_t))
const size_t len = 4096;
wchar_t buffer[len] = { 0 };
// قم بإجراء التعرف الضوئي على الحروف
size_t size = aspose::ocr::line(image_path.c_str(), buffer, len);
//نتيجة الطباعة
std::wcout << buffer << L"\n";
تحويل منطقة معينة من الصورة إلى نص في C++
يمكنك أيضًا تخصيص واجهة برمجة التطبيقات (API) للحد من مساحة الصورة التي تريد إجراء OCR فيها. في هذه الحالة ، يمكنك إنشاء مستطيل على الصورة للوصول إلى المنطقة المرغوبة. فيما يلي خطوات استخراج النص من منطقة معينة من الصورة.
- عيّن مسار الصورة في متغير سلسلة.
- قم بإعداد مخزن مؤقت لتخزين نتائج التعرف الضوئي على الحروف.
- قم بتنفيذ OCR باستخدام aspose :: ocr :: pagerect (const char \ imagepath، wchart \ buffer، sizet buffersize، int x، int y، int w، int h).
- اطبع نتائج OCR.
يوضح نموذج التعليمات البرمجية التالي كيفية تحويل منطقة معينة من الصورة إلى نص باستخدام C++.
std::string image_path = "sample_line.jpg";
// إعداد المخزن المؤقت للنتيجة (في الرموز ، len_byte = len * sizeof (wchar_t))
const size_t len = 4096;
wchar_t buffer[len] = { 0 };
int x = 138, y = 352, w = 2033, h = 537;
// قم بإجراء OCR أو المنطقة المحددة
size_t size = aspose::ocr::page_rect(image_path.c_str(), buffer, len, x, y, w, h);
//نتيجة الطباعة
std::wcout << buffer << L"\n";
استنتاج
في هذه المقالة ، تعلمت كيفية استخدام مكتبة Aspose ‘OCR لتحويل الصور إلى نص في C++. لقد رأينا كيفية إجراء OCR على صورة ذات أسطر نصية مفردة أو متعددة بالإضافة إلى قراءة نص من منطقة معينة من الصورة. يمكنك معرفة المزيد حول Aspose.OCR لـ C++ باستخدام التوثيق.