- Preprocessing the scanned images or photos
- Recognition of maximum amount of text on a document image
Scenario implementation
The code samples provided in this topic are Windows -specific.
Step 1. Loading ABBYY FineReader Engine
Step 1. Loading ABBYY FineReader Engine
To start your work with ABBYY FineReader Engine, you need to create the Engine object. The Engine object is the top object in the hierarchy of the ABBYY FineReader Engine objects and provides various global settings, some processing methods, and methods for creating the other objects.To create the Engine object, you can use the InitializeEngine function. See also other ways to load Engine object (Win).
C#
C++ (COM)
Step 2. Loading settings for the scenario
Step 2. Loading settings for the scenario
The most suitable settings for this scenario can be selected in ABBYY FineReader Engine using the LoadPredefinedProfile method of the Engine object. This method receives the profile name as an input parameter. Please see Working with Profiles for more information.ABBYY FineReader Engine supports 2 variants of settings for this scenario:
If you wish to change processing settings, use appropriate parameter objects. Please see Additional optimization for specific tasks below for further information.
Profile name | Description |
|---|---|
TextExtraction_Accuracy | The settings have been optimized for accuracy:
|
TextExtraction_Speed | The settings have been optimized for processing speed:
|
C#
C++ (COM)
Step 3. Loading and preprocessing the images
Step 3. Loading and preprocessing the images
ABBYY FineReader Engine provides the FRDocument object which allows processing multi-page documents.To load images of a single document and preprocess them, you should create the FRDocument object and add images to it. You may do one of the following:
- Create the FRDocument object using the CreateFRDocumentFromImage method of the Engine object. This method creates the FRDocument object and loads images from the specified file.
- Create the FRDocument object with the help of the CreateFRDocument method of the Engine object, then add images to the created FRDocument object from file (use the AddImageFile, AddImageFileWithPassword, or AddImageFileWithPasswordCallback method of the FRDocument object).
C#
C++ (COM)
Step 4. Document recognition
Step 4. Document recognition
To recognize the document, you should use analysis and recognition methods of the FRDocument object. This object provides a whole array of methods for document analysis and recognition. The most convenient method allowing document analysis, recognition, and synthesis using just one method is the Process method. It also uses simultaneous processing features of multiprocessor and multicore systems in the most efficient manner. However, you may also perform consecutive preprocessing, analysis, recognition, and synthesis using Preprocess, Analyze, Recognize, and Synthesize methods.
C#
C++ (COM)
Step 5. Searching for important information
Step 5. Searching for important information
During analysis, ABBYY FineReader Engine selects image blocks containing text, tables, pictures, etc. In the course of recognition, the blocks containing text data get filled with the recognized text.In ABBYY FineReader Engine, the Layout object serves as storage for blocks and recognized text. The main scenario of document processing works with layout within the FRDocument object, which represents processing document. To access a layout of a document page, use the IFRPage::Layout property.To search for key words, you may view the recognized text using the Text object, which is accessible via the properties of the text, table, or barcode blocks.The important data you have found may be saved or processed as required. Please see Additional optimization for specific tasks below for more detailed information.
(Optional) Step 6. Document export
(Optional) Step 6. Document export
Alternatively, you may want to store the extracted text in an easily searchable format such as TXT or in a structured format that will allow you to easily retrieve necessary information later, such as JSON.Use the Export method of the FRDocument object with a corresponding FileExportFormatEnum constant as one of the parameters. You can change the default parameters of export using the corresponding export object. Please see Additional optimization for specific tasks below for further information.After you have finished your work with the FRDocument object, release all the resources that were used by this object. Use the IFRDocument::Close method.
C#
C++ (COM)
Step 7. Unloading ABBYY FineReader Engine
Step 7. Unloading ABBYY FineReader Engine
After finishing your work with ABBYY FineReader Engine, you need to unload the Engine object. To do this, use the DeinitializeEngine exported function.
C#
C++ (COM)
Required resources
You can use the FREngineDistribution.csv file to automatically create a list of files required for your application to function. For processing with this scenario, select in the column 5 (RequiredByModule) the following values: Core Core.Resources Opening Opening, Processing Processing Processing.OCR Processing.OCR, Processing.ICR Processing.OCR.NaturalLanguages Processing.OCR.NaturalLanguages, Processing.ICR.NaturalLanguages If you modify the standard scenario, change the required modules accordingly. You also need to specify the interface languages, recognition languages and any additional features which your application uses (such as, e.g., Opening.PDF if you need to open PDF files, or Processing.OCR.CJK if you need to recognize texts in CJK languages). See Working with the FREngineDistribution.csv File for further details.Additional optimization for specific tasks
-
Scanning - Windows only
- Scanning
Description of the ABBYY FineReader Engine scenario for document scanning.
- Scanning
-
Recognition
- Tuning Parameters of Preprocessing, Analysis, Recognition, and Synthesis
Customization of document processing using objects of analysis, recognition and synthesis parameters.
- Tuning Parameters of Preprocessing, Analysis, Recognition, and Synthesis
-
Recognize handwriting
The TextExtraction_*** profiles do not include handwritten or handprinted text recognition. If you need to recognize handwriting, set the DetectHandwritten property of the PageAnalysisParams object to TRUE. -
PageProcessingParams Object
This object enables customization of analysis and recognition parameters. Using this object, you can indicate which image and text characteristics must be detected (inverted image, orientation, barcodes, recognition language, recognition error margin). -
SynthesisParamsForPage Object
This object includes parameters responsible for restoration of a page formatting during synthesis. -
SynthesisParamsForDocument Object
This object enables customization of document synthesis: restoration of its structure and formatting. -
MultiProcessingParams Object - Linux and Windows Only
Simultaneous processing may be useful when processing a large number of images. In this case, the processing load will be spread over the processor cores during image opening and preprocessing, layout analysis, and recognition, which makes it possible to speed up processing.
Reading modes (simultaneous or consecutive) are set using the MultiProcessingMode property. The RecognitionProcessesCount property controls the number of processes that may be started. -
Searching for important information
- Working with Layout and Blocks
About page layout, block types, and working with them. - Layout Object
This object’s parameters provide access to the page layout and the recognized text after document recognition. - Working with Text
Working with recognized text, paragraphs, words, and symbols.
- Working with Layout and Blocks
-
Re-reading of document using special parameters for specified data type
- Field-Level Recognition
Description of scenario for recognizing short text segments.
- Field-Level Recognition
-
Saving data
- To save recognized data, you may use the Export or ExportPages methods of the FRDocument object by assigning the FileExportFormatEnum constant as one of the parameters.
- Document Archiving
Description of the scenario for saving an electronic copy of document.
