تصحيح انحراف الصورة في Java

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

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

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

Java API لتصحيح انحراف الصورة

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

فئة AsposeOCR من API هي الفئة الرئيسية للتعرف على النص من الصور. يوفر طريقة CalcSkewImage(string) التي تحسب زاوية الانحراف للصورة المصدر المتوفرة. كما أنه يوفر طريقة أخرى CalcSkewImageFromUri (String uri) تحسب زاوية الانحراف للصورة التي يوفرها ارتباط URI. فئة PreprocessingFilter هي الفئة الأساسية لأوامر معالجة الصور. توفر فئة RecognitionSettings الخاصة بواجهة برمجة التطبيقات إعدادات للتعرف على الصور التي تحتوي على عناصر تسمح بتخصيص عملية التعرف.

يرجى إما تنزيل JAR الخاص بواجهة برمجة التطبيقات أو إضافة تكوين pom.xml التالي في تطبيق Java المستند إلى Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://releases.aspose.com/java/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-ocr</artifactId>
    <version>22.9</version>
</dependency>

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

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

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

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

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

// احسب زاوية الانحراف
double skew = api.CalcSkewImage("C:\\Files\\source.png");

// عرض الزاوية
System.out.println("Skew angle: " + skew + "°.");

كشف زاوية انحراف الصورة من عنوان URL للصورة الحية

يمكننا أيضًا اكتشاف زاوية الانحراف للصورة من عنوان URL المباشر باتباع الخطوات الواردة أدناه:

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

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

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

// احسب زاوية الانحراف
double skew = api.CalcSkewImageFromUri("https://www.aspose.com/sample-ocr-page.png");

// عرض الزاوية
System.out.println("Skew angle: " + skew + "°.");

التصحيح التلقائي لانحراف الصورة في Java

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

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

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

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

// أضف مرشح المنضدة
PreprocessingFilter filters = new PreprocessingFilter();
filters.add(PreprocessingFilter.AutoSkew());

// احفظ الصورة المعالجة مسبقًا في الملف
BufferedImage imageRes = api.PreprocessImage("C:\\Files\\source.png", filters);
File outputSource = new File("C:\\Files\\result.png");
ImageIO.write(imageRes, "png", outputSource);

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

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

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

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

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

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

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

// إظهار نص تم التعرف عليه
System.out.println(result.recognitionText);

التصحيح اليدوي لانحراف الصورة في Java

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

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

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

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

// أضف مرشح المنضدة
PreprocessingFilter filters = new PreprocessingFilter();
filters.add(PreprocessingFilter.Rotate(-90));

// احفظ الصورة المعالجة مسبقًا في الملف
BufferedImage imageRes = api.PreprocessImage("C:\\Files\\source.png", filters);
File outputSource = new File("C:\\Files\\result.png");
ImageIO.write(imageRes, "png", outputSource);

التعرف على نص الصورة باستخدام التصحيح اليدوي لانحراف الصورة في Java

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

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

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

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

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

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

// عرض النتائج
System.out.println(result.recognitionText);

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

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

استنتاج

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

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

إلى جانب تصحيح انحراف الصورة في Java ، يمكنك معرفة المزيد حول Aspose.OCR لواجهة برمجة تطبيقات Java باستخدام التوثيق. في حالة وجود أي غموض ، لا تتردد في الاتصال بنا على منتدى الدعم المجاني.

أنظر أيضا