GitHunt
RM

rmflight/page_dewarp

Text page dewarping using a "cubic sheet" model

page_dewarp


This fork optimizes the original code through several key changes resulting in approximately a 30x speed-up while retaining comparable output quality:

  • Using BFGS over Powell
  • Reducing the number of spans used
    • This results in a smaller number of parameters requiring optimization
    • Selecting a few spans in an informed way is usually sufficient to capture the dewarped nature
    • Warping profile (i.e., z-displacement as the x-axis is traversed) should be largely the same for most spans
    • Seven (7) spans are selected:
      • Top two spans
      • Three equidistant middle spans
      • Two bottom spans
    • The seven spans are usually adequate to capture the z-displacement and other potential image deformations (e.g., rotated pages, fisheye effects, etc)
  • Decreasing the decimate factor

Page dewarping and thresholding using a "cubic sheet" model - see full writeup at https://mzucker.github.io/2016/08/15/page-dewarping.html

Requirements:

  • scipy
  • OpenCV 3.0 or greater
  • Image module from PIL or Pillow

Usage:

page_dewarp.py IMAGE1 [IMAGE2 ...]

Languages

Python100.0%

Contributors

MIT License
Created April 21, 2024
Updated April 21, 2024