Deskewing a scanned image

Contents
[ ]

Skew is an artifact that might appear during document scanning process and it consists of getting the document’s text/images be rotated at a slight angle. It can have various causes but the most common are paper getting misplaced during a scan. Therefore, deskew is the process of detecting and fixing this issue on scanned files (ie, bitmap) so deskewed images will have the text/images correctly and horizontally aligned.

Deskewing an image can help a lot, if you want to improve the readability of scanned images. For example, think of a camera that automatically takes photos of goods with a barcode. If the skew angle is too high, the barcode can not be detected. After deskewing, the barcode can be read.

using Aspose.Imaging;
using System.IO;
string templatesFolder = @"c:\Users\USER\Downloads\templates\";
string dataDir = templatesFolder;
// Get rid of the skewed scan with default parameters
using (RasterImage image = (RasterImage)Image.Load(dataDir + "template.png"))
{
image.NormalizeAngle(false /*do not resize*/, Color.LightGray /*background color*/);
image.Save(dataDir + "result.png");
}
File.Delete(dataDir + "result.png");
view raw deskew.cs hosted with ❤ by GitHub

Below is an example of skewed scanned text and deskewed output.

Skewed image

Deskewed image

Skewed image Deskewed image