Scanned documents often become skewed (slanted) during scanning because of misfeeds or other alignment errors. Skew is the amount of rotation necessary to return an image to horizontal and vertical alignment. Skew is measured in degrees. Deskewing is a process whereby skew is removed by rotating an image by the same amount as its skew but in the opposite direction. This results in a horizontally and vertically aligned image where the text runs across the page rather than at an angle.
When an image is not aligned correctly, optical character recognition (OCR) is more difficult and becomes slower and less accurate. Deskewing the documents beforehand can make the OCR process faster and more accurate.
Use the LBitmap::Keystone function to perform inverse perspective transformation (keystoning) on an image.
Use the LBitmap::ManualPerspectiveDeskew function to change an image based on a view perspective equation, taking the depth of the objects into account as well as their relative dimensions.
Use the LBitmap::PerspectiveDeskew function if there is depth (z-axis) deformation as well as deformation along the x- and y- axes.
LEADTOOLS offers the following functionality for automatically straightening scanned documents:
The deskewing functions make it possible to::
Deskew documents containing pictures
Optionally, use high-speed rotation with 1-bit images (faster than normal rotation)
Optionally, report the skew angle without performing deskew.
Use the LBitmap::DeskewExt function when a lot of rotation may be necessary (as much as 45 degrees in either direction) or when it is desired to specify the maximum angle/resolution of deskewing.
Use the LBitmap::Deskew function to automatically straighten scanned documents of any kind. Images can be rotated by as much as 20 degrees in either direction to remove the skew. It can also be used when performing bank check scanning to obtain more accuracy than provided by the LBitmap::DeskewExt function.. To perform bank check scanning, send the following flags to the uFlags parameter (DSKW_USE_CHECK_DESKEW| DSKW_USE_CHECK_DESKEW_DETECT_LINES).
Different algorithms can be used when deskewing, as follows:
The normal algorithm
The bank check algorithm, which considers many features common to standard bank checks in order to determine orientation
The line detection algorithm, which is an algorithm based on finding the lines in an image
The following images demonstrate the deskewing of color, grayscale, and 1-bit images.
The original color image is shown in the following figure:
The deskewed color image is shown in the following figure:
The original grayscale image is shown in the following figure:
The deskewed grayscale image is shown in the following figure:
The original 1-bit image is shown in the following figure:
The deskewed 1-bit image is shown in the following figure:
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document