Dilation
Some images, such as store receipts, have very thin characters that may be damaged by automatic contrast corrections or binarization.
Aspose.OCR provides a special processing filter called dilation that can increase the thickness of characters in an image by adding pixels to the edges of high-contrast objects, such as letters.
Dilation
To increase the thickness of characters in an image, run the image through Dilate
processing filter.
Aspose.OCR.AsposeOcr recognitionEngine = new Aspose.OCR.AsposeOcr();
// Increase the thickness of characters
Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter filters = new Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter();
filters.Add(Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter.Dilate());
// Add an image to OcrInput object and apply processing filters
Aspose.OCR.OcrInput input = new Aspose.OCR.OcrInput(Aspose.OCR.InputType.SingleImage, filters);
input.Add("source.png");
// Save processed image to the folder
Aspose.OCR.ImageProcessing.Save(input, @"C:\result");
// Recognize image
List<Aspose.OCR.RecognitionResult> results = recognitionEngine.Recognize(input);
foreach(Aspose.OCR.RecognitionResult result in results)
{
Console.WriteLine(result.RecognitionText);
}
Image regions processing
Dilate
filter can be applied to specific regions of an image. For example, you can make the article body text thicker while leaving the headers unchanged.
To apply a filter to an area, specify its top left corner along with width and height as Aspose.Drawing.Rectangle
object. If the region is omitted, the filter is applied to the entire image.
Aspose.Drawing.Rectangle rectangle = new Aspose.Drawing.Rectangle(5, 161, 340, 113);
Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter filters = new Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter();
filters.Add(Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter.Dilate(rectangle));
Usage scenarios
Dilation is recommended for the following images:
- Receipts.
- Printouts with very thin font.