# include“ltocr.h”
L_LTOCR_APIL_INTEXT_FUNCTIONL_OcrZoneManager_GetOMROptions(zoneManager,值)
得到了有机磁共振选项目前使用的引擎。
处理OCR引擎区经理。
地址类型的变量L_OcrOMROptions结构与有机磁共振更新选项。
| 价值 | 意义 |
|---|---|
| 成功 | 函数是成功的。 |
| < 1 | 一个错误发生。指返回代码。 |
得到了有机磁共振选项目前使用的引擎。
有机磁共振代表光学标记识别。有关更多信息,请参考使用使用有机磁共振LEADTOOLS OCR C API。
与L_OcrOMROptions您可以更改以下有机磁共振设置:
一个页面有有机磁共振区L_OcrZone.ZoneType L_OcrZoneType_OMR属性集。
目前LEADTOOLS OCR模块——导致引擎不支持自动检测有机磁共振区。相反,您需要:有机磁共振区手动添加到页面通过设置他们的边界(通过L_OcrZone.Bounds,欧元区通过类型L_OcrZone.ZoneType和添加页面使用的区域L_OcrPage_AddZone或L_OcrPage_InsertZone在调用之前L_OcrPage_Recognize。
使用有机磁共振LEADTOOLS,你需要一个特殊的关键解锁有机磁共振功能。有关更多信息,请参考设置一个运行时许可。
必需的dll和库
静态无效LogMessage (常量wchar_t*消息,…){常量无符号intbufferSize = 1024 * 4;wchar_t缓冲(bufferSize);如果(消息! = NULL){va_list美联社;va_start(美联社消息);vswprintf_s(缓冲,消息,美联社);va_end(美联社);}其他的{wcscpy_s(缓冲区,L”“);}_tprintf(缓冲);}L_INT L_OcrZoneManager_GetOMROptionsExample (){BITMAPHANDLE位图= {0};L_OcrEngine ocrEngine =零;L_OcrPage ocrPage =零;L_OcrZoneManager zoneManager =零;L_OcrDocumentManager ocrDocumentManager =零;L_OcrDocument ocrDocument =零;L_OcrOMROptions omrOptions = {0};omrOptions。StructSize =运算符(L_OcrOMROptions);/ /创建一个实例的引擎L_INT retCode = L_OcrEngineManager_CreateEngine (L_OcrEngineType_Advantage &ocrEngine);如果(retCode ! =成功)返回retCode;/ /启动引擎使用默认参数L_OcrEngine_Startup (ocrEngine NULL, OCR_ADVANTAGE_RUNTIME_DIR);L_OcrEngine_GetZoneManager (ocrEngine &zoneManager);/ /加载图像的过程L_LoadBitmap (MAKE_IMAGE_PATH (L_TEXT (“Mixed.tif”)),位图,运算符(BITMAPHANDLE), 0 ORDER_RGB空,空);/ /将图片添加到一个OCR页面L_OcrBitmapSharingMode_AutoFree L_OcrPage_FromBitmap (ocrEngine &ocrPage,位图,NULL, NULL);/ /过户到OCR页面bitmap.Flags。分配= 0;/ /添加有机磁共振区。我们计算3有机磁共振区边界的这张照片L_RECT omrBounds [3] ={{484、98、84、78},{494、184、70、54}{498、244、76、76}};为(L_UINT我= 0;我< _countof (omrBounds);我+ +){/ /创建一个新的有机磁共振区,并将其添加到页面L_OcrZone区= {0};L_OcrZone_Default(区);区。ZoneType = L_OcrZoneType_OMR;区。边界= omrBounds[我];L_OcrPage_AddZone (ocrPage区);}/ /改变有机磁共振选项(汽车检测灵敏度最高的帧)L_OcrZoneManager_GetOMROptions (zoneManager &omrOptions);omrOptions。FrameDetectionMethod = L_OcrOMRFrameDetectionMethod_Auto;omrOptions。敏感性= L_OcrOMRSensitivity_Highest;L_OcrZoneManager_SetOMROptions (zoneManager &omrOptions);/ /识别页面L_OcrPage_Recognize (ocrPage,空,空);/ /显示有机磁共振区域属性L_UINT数= 0;L_OcrPage_GetZoneCount (ocrPage数);为(L_UINT我= 0;我<数;我+ +){L_OcrPageCharacters pageCharacters = {0};pageCharacters。StructSize =运算符(L_OcrPageCharacters);L_INT nRet = L_OcrPage_GetRecognizedCharacters (ocrPage &pageCharacters);如果(nRet = =成功){如果(pageCharacters。ZoneCharacterCount > 0){L_OcrCharacter omrCharacter = pageCharacters.ZoneCharacters[我].Characters [0];LogMessage(左“% u:状态:% s,信心:% u”我+ 1,omrCharacter。= = omrOptions代码。StateRecognitionCharacters[1]吗?l“填充”L:“空”,omrCharacter.Confidence);}/ /我们应该免费页面字符L_OcrPage_FreePageCharacters (&pageCharacters);}}/ /现在将结果保存为PDF使用的默认字符表示有机磁共振州(填0为空,1)L_TCHAR * pdfFileName1 = MAKE_IMAGE_PATH (L_TEXT (“Omr_Results1.pdf”));LogMessage(左“% s储蓄”,pdfFileName1);/ /创建一个OCR文档L_OcrEngine_GetDocumentManager (ocrEngine &ocrDocumentManager);L_OcrDocumentManager_CreateDocument (ocrDocumentManager &ocrDocument L_OcrCreateDocumentOptions_AutoDeleteFile, NULL);/ /添加页面OCR OCR文档L_OcrDocument_AddPage (ocrDocument ocrPage);L_OcrDocument_Save (ocrDocument pdfFileName1 DOCUMENTFORMAT_PDF, NULL, NULL);/ /改变有机磁共振的字符表示状态为空,Y和XomrOptions。StateRecognitionCharacters [0] = ' Y ';omrOptions。StateRecognitionCharacters [1] =“X”;L_OcrZoneManager_SetOMROptions (zoneManager &omrOptions);L_TCHAR * pdfFileName2 = MAKE_IMAGE_PATH (L_TEXT (“Omr_Results2.pdf”));LogMessage(左“% s储蓄”,pdfFileName2);L_OcrDocument_Save (ocrDocument pdfFileName2 DOCUMENTFORMAT_PDF, NULL, NULL);/ /清理如果(bitmap.Flags.Allocated)L_FreeBitmap(位图);如果(ocrPage ! = NULL)L_OcrPage_Destroy (ocrPage);如果(ocrDocument ! = NULL)L_OcrDocument_Destroy (ocrDocument);如果(ocrEngine ! = NULL)L_OcrEngine_Destroy (ocrEngine);返回成功;}