Dewarping

Geometric distortions is a very common case when dealing with photos of books, magazines, multi-page documents, and similar content. They can be caused by physical page curvature or camera lens distortion (ultra-wide and fisheye lenses, as well as entry-level smartphone lenses).

Warped images are very hard to be processed by most OCR algorithms. Thus, image straightening and distortion removal is critical to the recognition process as it directly affects the reliability and efficiency of segmentation and text extraction. Aspose.OCR implements a preprocessing filter for automated correction of geometric distortions before proceeding to recognition.

Important considerations

  • Dewarping one image may take up to 45 seconds.
  • Dewarping is very resource-intensive (CPU and RAM).
  • After removing the image curvature, text lines will have some wave-like distortion. Thus, it is highly recommended to use DetectAreasMode.CURVED_TEXT areas detection mode to extract text from the dewarped image. Other area detection modes may produce inaccurate results.
  • Dewarping also corrects image tilt. We recommend disabling automatic skew correction - it will have no effect and may even result in severe image distortion.

Dewarping

To straighten the curved image, run it through AutoDewarping() preprocessing filter.

AsposeOCR api = new AsposeOCR();
// Apply median filter
PreprocessingFilter filters = new PreprocessingFilter();
filters.add(PreprocessingFilter.AutoDewarping());
// Prepare batch
OcrInput images = new OcrInput(InputType.SingleImage, filters);
images.add("image.png");
// Save processed images to the folder
ImageProcessing.Save(images, "C:\\images");
Curved page photo Dewarped image

Usage scenarios

Automatic dewarping is recommended for:

  • Photos of book pages, magazines.
  • Curved paper.
  • Ultra wide-angle and fisheye photos.