Document areas detection
A scanned image or photograph of a text document may contain a large number of blocks of various content - text paragraphs, tables, illustrations, formulas, and the like. Detecting, ordering, and classifying areas of interest on a page is the cornerstone of successful and accurate OCR. This process is called document areas detection.
Aspose.OCR offers several document areas detection algorithms, allowing you to choose the one that works best for your specific content.
Automatic areas detection
If you call setDetectAreas(true)
method of recognition settings, Aspose.OCR automatically selects the optimal areas detection algorithm that suits the most common use cases.
Document areas detection uses a neural network, which requires additional time and resources on the computer running the application. You can disable it (call setDetectAreas(false)
) when extracting single-line texts, or working with very simple documents without formatting and pictures. This can improve the performance of your application, especially when integrating OCR functionality into web sites and public APIs with minimal impact on the quality of recognition results.
// Create instance of OCR API
AsposeOCR api = new AsposeOCR();
// Enable automatic document areas detection
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.setAllowedCharacters(CharactersAllowedType.LATIN_ALPHABET);
recognitionSettings.setDetectAreas(true);
// Extract text from image
RecognitionResult result = api.RecognizePage("source.png", recognitionSettings);
System.out.println("Recognition result:\n" + result.recognitionText + "\n\n");
Area detection modes
You can manually override the default document areas detection method if you are unhappy with the results or get unwanted artifacts.
Document structure analysis algorithm is specified using setDetectAreasMode
method of recognition settings.
// Create instance of OCR API
AsposeOCR api = new AsposeOCR();
// Enable automatic document areas detection
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.setDetectAreasMode(DetectAreasMode.DOCUMENT);
// Extract text from image
RecognitionResult result = api.RecognizePage("source.png", recognitionSettings);
System.out.println("Recognition result:\n" + result.recognitionText + "\n\n");
Aspose.OCR for Java supports the following document structure analysis methods provided in [DetectAreasMode
] enumeration:
Name | Value | Description | Use cases |
---|---|---|---|
DetectAreasMode.NONE |
0 | Do not analyze document structure. Similar to calling setDetectAreas(false) method of recognition settings. |
Simple images containing a few lines of text without illustrations or formatting. Applications requiring maximum recognition speed Web applications |
DetectAreasMode.DOCUMENT |
1 | Detect large blocks of text, such as paragraphs and columns. Optimal for multi-column documents with illustrations. See DetectAreasMode.DOCUMENT for additional details. |
Contracts Books Articles Newspapers High-quality scans |
DetectAreasMode.PHOTO |
2 | Finds small text blocks inside complex images. See DetectAreasMode.PHOTO for additional details. |
Driver’s licenses Social security cards Government and work IDs Visas Photos Screenshots Advertisements |
DetectAreasMode.COMBINE |
3 | The combination of DetectAreasMode.DOCUMENT and DetectAreasMode.PHOTO. See DetectAreasMode.COMBINE for additional details. |
Posters Billboards Datasheets Random photos Batch recognition |
DetectAreasMode.TABLE |
4 | Detects cells in tabular structures. See DetectAreasMode.TABLE for additional details. |
Tables Invoices |
DetectAreasMode.CURVED_TEXT |
5 | Auto-straightens curved lines and finds text blocks inside the resulting image. See DetectAreasMode.CURVED_TEXT for additional details. |
Photos of books, magazine articles, and other curved pages. |