| ABBYY Mobile OCR Engine 4 |
Go to: Contents | Specifications | Compatibility Issues
Different builds of ABBYY Mobile OCR Engine are not binary compatible. Applications that were compiled using earlier builds of ABBYY Mobile OCR Engine should be recompiled. Some changes in the source code may be necessary because of the improvements in the API. In the table below you can find the API changes introduced in the different builds.
| Build # | Changes | Required code modifications |
|---|---|---|
| 3.0 r4 | The TrialKey.h file has been removed. | You have to use the serial number from our re-sellers. |
| 3.0 r3 | The format of
TFineProgressCallbackFunction has been changed:
|
Redefine your callback function and warning handling. Here is a sample
implementation:
int TFineProgressCallbackFunction(
int processedPercentage,
DWORD warning,
void* warningData )
{
fprintf( TraceFile, "%d%% of the work is done.\n", processedPercentage );
if( warning == FWC_ProbablyBadImage) {
fprintf( TraceFile, "The image quality is too low.\n" );
}
if( processedPercentage < 50
&& ( warning == FWC_SlowRecognition ) != 0 )
{
return 0;
} else {
return 1;
}
} |
| 2.0 | The FinePreprocessImage function returns the angle by which the image skew was corrected. | Add to the FinePreprocessImage call the transformationInfo argument. If FinePreprocessImage completes successfully, free up transformationInfo using the FineFreeMemory function. |
| Simple types (BYTE, etc.) are now defined through conditional compilation. | No changes are required. | |
|
Pass the FIPO_Default value to the corresponding functions for the same behavior. | |
| Client code may obtain debug information via a callback function of type FineExecutionLogFunction. | Pass 0 for the executionLogFunction argument of the FineInitialize function if you do not need to receive information about the processing. | |
| The FineBinarizeImage function has been removed. | Use the FinePreprocessImage function. | |
| The FineRecognizeImage and FineRecognizeRegion image recognition functions return information about the text blocks instead of the list of lines. Now these functions return the CFineLayout structure, which contains an array of blocks (CFineTextBlock), each of which in turn contains an array of lines CFineTextLine. | To iterate through all the lines of a recognized text, you need to iterate through all the blocks. | |
| Changes were made to memory allocation. Previously, pre-allocated memory blocks were passed to API functions. The API functions worked with these blocks and issued the results via these blocks. Now, when a library is initialized, pointers to the memory allocation and release functions are passed to the FineInitialize function, and the library uses these pointers to work with the memory. Memory for the results returned by an API function is allocated inside this function. The client code must free up this memory using the FineFreeMemory function. |
|
|
| The FINE_ATTR_CERTAIN_SPACE flag was removed. | The confidence for a space, just like confidences for other characters, should be determined via the FCA_Uncertain flag of the TFineCharacterAttributes enumeration. | |
| The confidenceLevel argument was added to the recognition functions. | In the FineRecognizeImage and FineRecognizeRegion recognition functions, pass the FRCL_Level3 value as the confidenceLevel argument. | |
| A special WestEuropean language was introduced to speed up OCR that involves multiple European languages. The WestEuropean language combines English, French, German, Portuguese, Spanish, and Italian. | No changes are required. | |
| The CFineBcrField structure no longer contains a property describing the region of a field on the image. A region is a list of coordinates of the rectangles that enclose the field. | The region of a field can now be obtained by merging the rectangles from the CFineTextLine::Rect property which enclose the field lines. | |
| In the CFineBcrField structure, in the TextLines property, the text of a field is now written not as a WCHAR string, but as an array of CFineTextLine lines. | To get the text of a field:
|
|
| In the TBcrFieldType enumeration, the BFT_Max constant was renamed to BFT_Count. | Rename BFT_Max to BFT_Count. |