تصحيح الانحراف في معالجة الصور باستخدام C#

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

سيتم تناول الموضوعات التالية في هذه المقالة:

  1. C# Skew Correction Image Processing API
  2. كشف زاوية انحراف الصورة
  3. تصحيح الانحراف التلقائي
  4. تصحيح الانحراف التلقائي باستخدام مرشح المعالجة المسبقة
  5. التعرف على نص الصورة باستخدام تصحيح الانحراف التلقائي
  6. تصحيح الانحراف اليدوي
  7. تصحيح الانحراف اليدوي باستخدام مرشح المعالجة المسبقة

واجهة برمجة تطبيقات معالجة الصور #C تصحيح الانحراف

لتصحيحات الانحراف ، سنستخدم Aspose.OCR for .NET API. تسمح API بأداء OCR على الصور الممسوحة ضوئيًا وصور الهاتف الذكي ولقطات الشاشة ومناطق الصورة وملفات PDF الممسوحة ضوئيًا. يتيح حفظ نتائج النص المعترف به في تنسيقات المستندات الشائعة.

يرجى إما تنزيل DLL من API أو تثبيته باستخدام NuGet.

PM> Install-Package Aspose.OCR

كشف زاوية انحراف الصورة في #C

يوفر API طريقة CalculateSkew (سلسلة) التي تحسب زاوية الانحراف للصورة المصدر المتوفرة. يمكننا بسهولة اكتشاف زاوية الانحراف لصورة نصية باتباع الخطوات الواردة أدناه:

  1. أولاً ، قم بإنشاء مثيل لفئة AsposeOCR.
  2. قم باستدعاء طريقة CalculateSkew (). يأخذ مسار الصورة كحجة.
  3. أخيرًا ، أظهر زاوية الانحراف المحسوبة.

يوضح نموذج التعليمات البرمجية التالي كيفية حساب زاوية الانحراف للصورة في #C.

// يوضح مثال الكود هذا كيفية حساب زاوية الانحراف للصورة.
// قم بإنشاء مثيل لـ AsposeOcr
AsposeOcr recognitionEngine = new AsposeOcr();

// احسب زاوية الانحراف
float skew = recognitionEngine.CalculateSkew("C:\\Files\\OCR\\source.png");

// عرض الزاوية
Console.WriteLine($"Skew angle: {skew:N1}°");
كشف زاوية انحراف الصورة في C#

مصدر الصورة.

Skew angle: 5.8°

تصحيح الانحراف التلقائي في #C

لتصحيح الانحراف التلقائي ، يمكننا تمكين خاصية RecognitionSettings.AutoSkew في إعدادات التعرف باتباع الخطوات الواردة أدناه:

  1. أولاً ، قم بإنشاء مثيل لفئة AsposeOCR.
  2. بعد ذلك ، قم بتهيئة كائن من فئة RecognitionSettings.
  3. بعد ذلك ، قم بتعيين خاصية AutoSkew إلى true.
  4. بعد ذلك ، قم باستدعاء طريقة RecognizeImage () مع الصورة المصدر وكائن RecognitionSettings.
  5. أخيرًا ، اعرض النص الذي تم التعرف عليه.

يوضح نموذج التعليمات البرمجية التالي كيفية تطبيق تصحيح الانحراف التلقائي في #C.

// يوضح مثال الرمز هذا كيفية تطبيق تصحيح الانحراف التلقائي.
// قم بإنشاء مثيل لـ AsposeOcr
AsposeOcr recognitionEngine = new AsposeOcr();

// قم بتمكين تصحيح الانحراف التلقائي في إعدادات التعرف
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.AutoSkew = true;

// التعرف على الصورة
RecognitionResult result = recognitionEngine.RecognizeImage("C:\\Files\\OCR\\source.png", recognitionSettings);

// إظهار نص تم التعرف عليه
Console.WriteLine(result.RecognitionText);

تصحيح الانحراف التلقائي مع مرشح المعالجة المسبقة في #C

بدلاً من ذلك ، يمكننا تطبيق AutoSkew مرشح المعالجة المسبقة لتصحيح الانحراف تلقائيًا وحفظ الصورة المصححة باتباع الخطوات الواردة أدناه:

  1. أولاً ، قم بإنشاء مثيل لفئة AsposeOCR.
  2. بعد ذلك ، قم بتهيئة كائن من فئة PreprocessingFilter.
  3. ثم قم بإضافة عامل التصفية AutoSkew ().
  4. بعد ذلك ، قم باستدعاء طريقة PreprocessImage () لتطبيق المرشح على الصورة المصدر.
  5. أخيرًا ، احفظ الصورة المصححة.

يوضح نموذج التعليمات البرمجية التالي كيفية تطبيق تصحيح الانحراف التلقائي باستخدام مرشح المعالجة المسبقة في #C.

// يوضح مثال الكود هذا كيفية تطبيق تصحيح الانحراف التلقائي باستخدام مرشح المعالجة المسبقة وحفظ الصورة المصححة.
// قم بإنشاء مثيل لـ AsposeOcr
AsposeOcr recognitionEngine = new AsposeOcr();

// أضف مرشح المنضدة
Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter filters = new Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter();
filters.Add(Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter.AutoSkew());

// احفظ الصورة المعالجة مسبقًا في الملف
using (MemoryStream ms = recognitionEngine.PreprocessImage("C:\\Files\\OCR\\source.png", filters))
{
    using (FileStream fs = new FileStream("C:\\Files\\OCR\\result.png", FileMode.Create, FileAccess.Write))
    {
        ms.WriteTo(fs);
    }
}
تصحيح الانحراف التلقائي بالفلتر في C#

التصحيح التلقائي للانحراف باستخدام الفلتر في C#.

التعرف على نص الصورة باستخدام تصحيح الانحراف التلقائي في #C

يمكننا تطبيق مرشح المعالجة المسبقة AutoSkew والتعرف على نص الصورة باتباع الخطوات الواردة أدناه:

  1. أولاً ، قم بإنشاء مثيل لفئة AsposeOCR.
  2. بعد ذلك ، قم بتهيئة كائن من فئة PreprocessingFilter.
  3. ثم قم بإضافة عامل التصفية AutoSkew ().
  4. في غضون ذلك ، قم بإنشاء مثيل لفئة RecognitionSettings.
  5. بعد ذلك ، قم بتعيين عوامل تصفية لخاصية PreprocessingFilters.
  6. بعد ذلك ، قم باستدعاء طريقة RecognizeImage () مع الصورة المصدر وكائن RecognitionSettings.
  7. أخيرًا ، اعرض النص الذي تم التعرف عليه.

يوضح نموذج التعليمات البرمجية التالي كيفية تطبيق تصحيح الانحراف التلقائي والتعرف على النص في #C.

// يوضح مثال الكود هذا كيفية تطبيق تصحيح الانحراف التلقائي باستخدام مرشح المعالجة المسبقة والتعرف على الصورة.
// قم بإنشاء مثيل لـ AsposeOcr
AsposeOcr recognitionEngine = new AsposeOcr();

// أضف مرشح المنضدة
Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter filters = new Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter();
filters.Add(Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter.AutoSkew());

// إلحاق عوامل تصفية المعالجة المسبقة بإعدادات التعرف
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.PreprocessingFilters = filters;

// التعرف على الصورة
RecognitionResult result = recognitionEngine.RecognizeImage("C:\\Files\\OCR\\source.png", recognitionSettings);

// أظهر النتائج
Console.WriteLine(result.RecognitionText);

تصحيح الانحراف اليدوي في #C

لتصحيح الانحراف يدويًا ، يمكننا تحديد زاوية الانحراف يدويًا عن طريق تحديد خاصية SkewAngle في إعدادات التعرف باتباع الخطوات الواردة أدناه:

  1. أولاً ، قم بإنشاء مثيل لفئة AsposeOCR.
  2. بعد ذلك ، قم بتهيئة كائن من فئة RecognitionSettings.
  3. ثم قم بتعيين خاصية SkewAngle.
  4. بعد ذلك ، قم باستدعاء طريقة RecognizeImage () مع الصورة المصدر وكائن RecognitionSettings.
  5. أخيرًا ، اعرض النص الذي تم التعرف عليه.

يوضح نموذج التعليمات البرمجية التالي كيفية تطبيق تصحيح الانحراف اليدوي في #C.

// يوضح مثال الكود هذا كيفية تطبيق تصحيح الانحراف اليدوي.
// قم بإنشاء مثيل لـ AsposeOcr
AsposeOcr recognitionEngine = new AsposeOcr();

// اضبط زاوية الانحراف يدويًا
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.SkewAngle = 6;

// التعرف على الصورة
RecognitionResult result = recognitionEngine.RecognizeImage("C:\\Files\\OCR\\source.png", recognitionSettings);

// عرض النتائج
Console.WriteLine(result.RecognitionText);

تصحيح الانحراف اليدوي باستخدام مرشح المعالجة المسبقة في #C

يمكننا أيضًا تحديد زاوية الانحراف يدويًا عن طريق تدوير الصورة إلى الدرجة المحددة باستخدام مرشح المعالجة المسبقة Rotate.

يرجى اتباع الخطوات الواردة أدناه لتطبيق تصحيح الانحراف يدويًا:

  1. أولاً ، قم بإنشاء مثيل لفئة AsposeOCR.
  2. بعد ذلك ، قم بتهيئة كائن من فئة PreprocessingFilter.
  3. ثم قم بإضافة عامل التصفية Rotate ().
  4. في غضون ذلك ، قم بإنشاء مثيل لفئة RecognitionSettings.
  5. بعد ذلك ، قم بتعيين عوامل تصفية لخاصية PreprocessingFilters.
  6. بعد ذلك ، قم باستدعاء طريقة RecognizeImage () مع الصورة المصدر وكائن RecognitionSettings.
  7. أخيرًا ، اعرض النص الذي تم التعرف عليه.

يوضح نموذج التعليمات البرمجية التالي كيفية تطبيق تصحيح الانحراف اليدوي باستخدام مرشح المعالجة المسبقة في #C.

// يوضح مثال الكود هذا كيفية تطبيق تصحيح الانحراف اليدوي والتعرف على نص الصورة.
// قم بإنشاء مثيل لـ AsposeOcr
AsposeOcr recognitionEngine = new AsposeOcr();

// قم بتدوير الصورة 90 درجة عكس اتجاه عقارب الساعة
Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter filters = new Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter();
filters.Add(Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter.Rotate(-90));

// حفظ الصورة المعالجة مسبقًا في ملف لأغراض التصحيح
using (MemoryStream ms = recognitionEngine.PreprocessImage("C:\\Files\\OCR\\source.png", filters))
{
    using (FileStream fs = new FileStream("C:\\Files\\OCR\\result.png", FileMode.Create, FileAccess.Write))
    {
        ms.WriteTo(fs);
    }
}

// إلحاق عوامل تصفية المعالجة المسبقة بإعدادات التعرف
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.PreprocessingFilters = filters;

// التعرف على الصورة
RecognitionResult result = recognitionEngine.RecognizeImage("C:\\Files\\OCR\\source.png", recognitionSettings);

// أظهر النتائج
Console.WriteLine(result.RecognitionText);

احصل على رخصة تقييم مجانية

يمكنك الحصول على ترخيص مؤقت مجاني لتجربة Aspose.OCR لـ .NET بدون قيود تقييم.

استنتاج

في هذه المقالة ، تعلمنا كيفية:

  • إجراء التعرف الضوئي على الحروف والتعرف على النص على الصور ؛
  • تطبيق المرشحات ومعالجة الصور ؛
  • استخدام إعدادات التعرف ؛
  • حفظ الصور المصححة باستخدام #C.

إلى جانب تصحيح الانحراف في معالجة الصور باستخدام #C ، يمكنك معرفة المزيد حول Aspose.OCR لـ .NET API باستخدام التوثيق. في حالة وجود أي غموض ، لا تتردد في الاتصال بنا على منتدى الدعم المجاني.

أنظر أيضا