Deskewing a scanned image
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.
| import aspose.pycore as aspycore | |
| from aspose.imaging import RasterImage, Image, Color | |
| import os | |
| if 'TEMPLATE_DIR' in os.environ: | |
| templates_folder = os.environ['TEMPLATE_DIR'] | |
| else: | |
| templates_folder = r"C:\Users\USER\Downloads\templates" | |
| delete_output = 'SAVE_OUTPUT' not in os.environ | |
| data_dir = templates_folder | |
| # Get rid of the skewed scan with default parameters | |
| with aspycore.as_of(Image.load(os.path.join(data_dir, "template.png")), RasterImage) as image: | |
| image.normalize_angle(False, Color.light_gray) | |
| image.save(os.path.join(data_dir, "result.png")) | |
| if delete_output: | |
| os.remove(os.path.join(data_dir, "result.png")) |
Below is an example of skewed scanned text and deskewed output.
|
|
|
|---|---|
| Skewed image | Deskewed image |