TABLE OF CONTENTS
CURRENT VERSION
2020.12 – released December 2020
SYSTEM REQUIREMENTS AND PRE-REQUISITES
- Debian 8 and above (x86 and x64) 32bit and 64bit.
- Ubuntu 16.04 and above (x86, x64, ARM Cortex A53, and ARM Cortex A72) 32bit and 64bit.
- Raspbian 10 (Buster) and above (ARM Cortex A53, and ARM Cortex A72) 32bit.
- Windows WSL 1.0 (Ubuntu 16.04 and above) 64bit
- JRE (Java Runtime Environment) should be installed and configured.
PREPARATION FOR USAGE
- Include file "Engine.h" into your application.
- Include the path to file "Engine.h" and add file "StdAfx.cpp" to list of source files.
- Next three files should be in the same directory: "StdAfx.cpp", "StdAfx.h", " Engine.h".
- To link application, next keys should be added:
- lcontainerocr
- -Lpath/to/folder_of_libcontainerocr.so
USING THE LIBRARY
When it’s done, the function "InitEngine" should be called. After the engine is initialized, a recognition function can be called.
There are three available functions:
- int Recognition(BYTE* pImage, int nWidth, int nHeight, int nBitCount, InitSet* iniSet, CONTAINERPLATE_DATA* carData);
- int RecognitionFromFile(char* szFile,int fileNameLen, InitSet* iniSet, CONTAINERPLATE_DATA* carData);
- char* RecognitionFromFileToJSON(char* szFile,int fileNameLen);
After result is received, function "FreeEngine" should be called.
Example of usage
InitEngine(); char* strJSON = RecognitionFromFileToJSON("path/to/image", "length_path/to/image"); if (strJSON) { // the input is fine, parse the json } FreeEngine(); // Process results of recognizing typedef struct tagInitSet { RECT RoiRect; int nLetterHeightMin; int nLetterHeightMax; int skewAng; int mode; //0: picture, 1:video }InitSet; #define MULTIRESULT 10 typedef struct tagLICENSE { int nLetNum; TCHAR szLicense[20]; float pfDist; int nTrust; int aveH; BOOL bCheckSum; BYTE Type; BYTE bBkColor; RECT rtPlate; // Get plate region RECT blob[20]; BYTE bCarColor; BYTE bCarColDp; } LICENSE, *LPLICENSE; typedef struct tagCONTAINERPLATE { int nPlate; LICENSE pPlate[MULTIRESULT]; DWORD nProcTime; // Get Recognition Speed(ms) char licenseMSG[100]; } CONTAINERPLATE_DATA;
License checking errors
- invalidServerPublicKey: Invalid server public key
- invalidJSONResponse: Invalid JSON response
- invalidResponse: Invalid response from server
- invalidURL: Invalid server URL
- invalidDevicId: Error while getting device ID
- timeOut: Request timeout.
- invalidAPIKey: Invalid API key
RECOGNITION RESULTS
If recognition is successful, it contains JSON response with the objects documented in the article OCR ENGINE OUTPUT.
EXAMPLE PROJECTS (SOURCE CODE)
Download attached file.