# 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和X
omrOptions。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);
返回成功;
}