تصحیح انحراف تصویر در جاوا

در گرافیک کامپیوتری و پردازش تصویر، کج تصویر یک انحراف زاویه از تصاویر مستطیلی است. همچنین به عنوان شیب یا اعوجاج تصویر نیز شناخته می شود. اصطلاح “کج” به زاویه یک تصویر اشاره دارد. انحراف تصویر زمانی اتفاق می افتد که موقعیت بصری عناصر در یک تصویر یکنواخت نباشد. کج شدن می تواند منجر به این شود که هر گوشه ای در یک زاویه قرار گیرد یا حتی جابجا شود به طوری که یک طرف از طرف دیگر بلندتر باشد. چنین عکس‌هایی یا تصاویر اسکن شده می‌توانند تحریف شده و غیرجذاب به نظر برسند. در این مقاله با نحوه تشخیص انحراف تصویر به صورت برنامه ای آشنا می شویم. همچنین نحوه اصلاح انحراف تصویر را در جاوا یاد خواهیم گرفت.

موضوعات زیر در این مقاله پوشش داده خواهد شد:

  1. API جاوا برای تصحیح انحراف تصویر
  2. تشخیص زاویه انحراف تصویر
  3. [تشخیص زاویه انحراف تصویر زنده تصویر3
  4. تصحیح انحراف تصویر خودکار
  5. [تشخیص متن تصویر با تصحیح خودکار انحراف5
  6. تصحیح انحراف تصویر دستی
  7. [تشخیص متن تصویر با تصحیح دستی انحراف تصویر7

Java API برای تصحیح انحراف تصویر

برای تشخیص انحراف تصویر و اصلاحات، از API Aspose.OCR برای جاوا استفاده خواهیم کرد. امکان اجرای OCR بر روی تصاویر اسکن شده، عکس های گوشی هوشمند، اسکرین شات ها، قسمت های یک تصویر و فایل های PDF اسکن شده را فراهم می کند. API همچنین اجازه می دهد تا نتایج متن شناخته شده را در قالب های سند محبوب ذخیره کنید.

کلاس AsposeOCR API کلاس اصلی برای تشخیص متن از تصاویر است. این روش CalcSkewImage(string) را ارائه می دهد که زاویه انحراف تصویر منبع ارائه شده را محاسبه می کند. همچنین روش دیگری CalcSkewImageFromUri(String uri) را ارائه می دهد که زاویه انحراف تصویر ارائه شده توسط پیوند URI را محاسبه می کند. کلاس PreprocessingFilter کلاس پایه برای دستورات پردازش تصویر است. کلاس RecognitionSettings API تنظیماتی را برای تشخیص تصویر ارائه می کند که شامل عناصری است که امکان سفارشی کردن فرآیند تشخیص را فراهم می کند.

لطفاً JAR API را دانلود کنید یا پیکربندی pom.xml زیر را در یک برنامه جاوا مبتنی بر 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. در نهایت زاویه انحراف محاسبه شده را نشان دهید.

کد نمونه زیر نحوه محاسبه زاویه انحراف یک تصویر در جاوا را نشان می دهد.

// این مثال کد نحوه محاسبه زاویه انحراف یک تصویر را نشان می دهد.
// یک نمونه از 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. در نهایت زاویه انحراف محاسبه شده را نشان دهید.

کد نمونه زیر نحوه محاسبه زاویه انحراف یک تصویر در جاوا را نشان می دهد.

// این مثال کد نحوه محاسبه زاویه انحراف یک تصویر را نشان می دهد.
// یک نمونه از AsposeOcr ایجاد کنید
AsposeOCR api = new AsposeOCR();

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

// نمایش زاویه
System.out.println("Skew angle: " + skew + "°.");

تصحیح خودکار انحراف تصویر در جاوا

ما می توانیم به طور خودکار تصحیح انحراف تصویر را با دنبال کردن مراحل زیر تصحیح کنیم:

  1. ابتدا یک نمونه از کلاس AsposeOCR ایجاد کنید.
  2. سپس یک شی از کلاس PreprocessingFilter را مقداردهی اولیه کنید.
  3. سپس، فیلتر AutoSkew() را اضافه کنید.
  4. پس از آن، متد PreprocessImage() را فراخوانی کنید تا فیلتر روی تصویر منبع اعمال شود.
  5. در نهایت تصویر تصحیح شده را ذخیره کنید.

کد نمونه زیر نحوه اعمال فیلتر پیش پردازش تصحیح خودکار در جاوا را نشان می دهد.

// این مثال کد نحوه اعمال تصحیح خودکار انحراف را با استفاده از فیلتر پیش پردازش و ذخیره تصویر اصلاح شده نشان می دهد.
// یک نمونه از 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);

تشخیص متن تصویر با اصلاح خودکار انحراف در جاوا

با دنبال کردن مراحل زیر می‌توانیم تصحیح انحراف خودکار را اعمال کنیم و متن را تشخیص دهیم:

  1. ابتدا یک نمونه از کلاس AsposeOCR ایجاد کنید.
  2. سپس، یک شی از کلاس RecognitionSettings را مقداردهی اولیه کنید.
  3. سپس setAutoSkew را با true به عنوان آرگومان فراخوانی کنید.
  4. پس از آن، متد RecognizePage() را با تصویر منبع و شی RecognitionSettings فراخوانی کنید.
  5. در نهایت متن شناسایی شده را نشان دهید.

کد نمونه زیر نحوه اعمال تصحیح خودکار انحراف و تشخیص متن در جاوا را نشان می دهد.

// این مثال کد نحوه اعمال تصحیح خودکار انحراف را نشان می دهد.
// یک نمونه از AsposeOcr ایجاد کنید
AsposeOCR api = new AsposeOCR();

// در تنظیمات تشخیص، Deskew خودکار را فعال کنید
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.setAutoSkew(true);

// تشخیص تصویر
RecognitionResult result = api.RecognizePage("C:\\Files\\source.png", recognitionSettings);

// نمایش متن شناخته شده
System.out.println(result.recognitionText);

تصحیح دستی انحراف تصویر در جاوا

با انجام مراحل زیر می توانیم زاویه انحراف را به صورت دستی با چرخاندن تصویر به درجه مشخص شده تعریف کنیم:

  1. ابتدا یک نمونه از کلاس AsposeOCR ایجاد کنید.
  2. سپس یک شی از کلاس PreprocessingFilter را مقداردهی اولیه کنید.
  3. سپس با استفاده از فیلتر متد Rotate() زاویه چرخش را اضافه کنید.
  4. سپس یک نمونه از کلاس RecognitionSettings ایجاد کنید.
  5. پس از آن، متد PreprocessImage() را فراخوانی کنید تا فیلتر روی تصویر منبع اعمال شود.
  6. در نهایت متن شناسایی شده را نشان دهید.

کد نمونه زیر نحوه اعمال تصحیح انحراف دستی با فیلتر پیش پردازش در جاوا را نشان می دهد.

// این مثال کد نحوه اعمال تصحیح انحراف دستی را نشان می دهد.
// یک نمونه از 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);

تشخیص متن تصویر با تصحیح دستی انحراف تصویر در جاوا

با دنبال کردن مراحل زیر می‌توانیم زاویه انحراف را به صورت دستی تعریف کنیم و متن را تشخیص دهیم:

  1. ابتدا یک نمونه از کلاس AsposeOCR ایجاد کنید.
  2. سپس، یک شی از کلاس RecognitionSettings را مقداردهی اولیه کنید.
  3. سپس متد setSkew() را فراخوانی کنید.
  4. پس از آن، متد RecognizePage() را با تصویر منبع و شی RecognitionSettings فراخوانی کنید.
  5. در نهایت متن شناسایی شده را نشان دهید.

کد نمونه زیر نحوه اعمال تصحیح انحراف دستی و تشخیص متن تصویر در جاوا را نشان می دهد.

// این مثال کد نحوه اعمال تصحیح انحراف دستی را نشان می دهد.
// یک نمونه از 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 برای جاوا بدون محدودیت ارزیابی می‌توانید یک مجوز موقت رایگان دریافت کنید.

نتیجه

در این مقاله یاد گرفتیم که چگونه:

  • انجام OCR و تشخیص متن روی تصاویر.
  • اعمال فیلترها و پردازش تصاویر؛
  • استفاده از تنظیمات تشخیص؛
  • تصاویر تصحیح شده را با استفاده از جاوا ذخیره کنید.

علاوه بر تصحیح انحراف تصویر در جاوا، می‌توانید با استفاده از مستندات درباره Aspose.OCR برای Java API اطلاعات بیشتری کسب کنید. در صورت وجود هرگونه ابهامی، لطفاً با ما در [تالار گفتمان پشتیبانی رایگان17 تماس بگیرید.

همچنین ببینید