←选择平台

IOcrOmrOptions接口

总结
引擎当前使用的OMR(光学标记识别)设置。
语法
c#
VB
objective - c
c++
Java
公共接口IOcrOmrOptions
公共接口IOcrOmrOptions
@接口LTOcrOmrOptions: NSObject
公共OcrOmrOptions
公共接口IOcrOmrOptions
讲话

在LEADTOOLS中使用OMR需要一个特殊的密钥来解锁OMR功能。有关更多信息,请参阅解锁特殊的LEAD功能

方法的实例IOcrOmrOptions接口当前在引擎调用中使用IOcrSpellCheckManager。OmrOptions财产。

使用IOcrOmrOptions界面更改以下OMR设置:

页面的OMR区域是具有OcrZone。ZoneType设置为OcrZoneType。有机磁共振

所有LEADTOOLS OCR引擎都支持OMR。但是,只有LEADTOOLS OCR模块- LEAD引擎支持在OCR页面自动分区期间自动检测OMR区域。要设置OMR区域自动检测,请确保“Detect复选框”是调用前包含的Recognition.Zoning.Options设置标志之一IOcrPage。AutoZoneIOcrPage。识别.其余的OCR引擎要求通过设置边界手动将OMR区域添加到页面OcrZone。界限和如上所述的区域类型。方法将区域添加到页面IOcrPage。区调用前的收集IOcrPage。识别

有关更多信息,请参阅在LEADTOOLS .NET OCR中使用OMR

例子

本例将加载TIF图像,创建OMR区域并识别它们。

c#
VB
使用Leadtools;使用Leadtools.Codecs;使用Leadtools.Ocr;使用Leadtools.Forms.Common;使用Leadtools.Document.Writer;使用Leadtools.WinForms;公共无效OcrOmrExample ()//创建引擎实例使用(IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(ocrengintype . lead))//使用默认参数启动引擎ocrEngine。启动(, LEAD_VARS.OcrLEADRuntimeDir);//我们将在Images文件夹中使用LEADTOOLS附带的Mixed.tif。此图像有3个OMR复选标记字符串tifFileName = Path.Combine(LEAD_VARS.ImagesDir,“Mixed.tif”);//创建一个OCR文档使用(IOcrDocument ocrDocument = ocreengine . documentmanager . createdocument ())//向文档中添加一页IOcrPage ocrPage = ocrDocument.Pages.AddPage(tifFileName,);//添加OMR分区。我们之前计算了这幅图像的3个OMR区域边界LeadRect[] omrBounds =LeadRect(484, 98, 84, 78),LeadRect(494, 184, 70,54),LeadRect(498, 244, 76, 76)};foreach(LeadRect omrBoundomrBounds)//创建一个新的OMR区域并将其添加到页面OcrZone zone =OcrZone ();区。ZoneType = OcrZoneType.Omr;区。Bounds = omrBound;ocrPage.Zones.Add(区);//显示我们有多少个区域和它们的属性控制台。WriteLine ("页面有{0}个区域:", ocrPage.Zones.Count);intI = 0;i < ocrPage.Zones.Count;我+ +)OcrZone zone = ocrPage.Zones[i];控制台。WriteLine ({0}:类型:{1}, i + 1, zone.ZoneType);//改变OMR选项(自动检测最高灵敏度的帧)iocroroptions omrOptions = ocreengine . zonmanager . omrOptions;omrOptions。FrameDetectionMethod = OcrOmrFrameDetectionMethod.Auto;omrOptions。灵敏度=光学字符识别有机磁共振灵敏度.最高;//获取我们在引擎中用来表示填充/未填充状态的字符字符filledCode = omrOptions.GetStateRecognitionCharacter(OcrOmrZoneState.Filled);字符unfilledCode = omrOptions.GetStateRecognitionCharacter(OcrOmrZoneState.Unfilled);//识别页面控制台。WriteLine (“认识……”);ocrPage。识别();IOcrPageCharacters pageCharacters = ocrPage.GetRecognizedCharacters();foreach(IOcrZoneCharacters zoneCharacterspageCharacters)//我们必须有一个字符(每个OMR区的状态)Debug.Assert (zoneCharacters。Count == 1);OcrCharacter character = zoneCharacters[0];Debug.Assert(字符。Code == filledCode ||字符。代码== unfilledCode);控制台。WriteLine (“{0}:状态:{1},信心:{2}”, zoneCharacters。ZoneIndex,的性格。Code == filledCode ?“填充”“空”, character.Confidence);//现在使用OMR状态的默认字符表示将结果保存为PDF(0表示未填充,1表示已填充)字符串pdfFileName1 = Path.Combine(LEAD_VARS.ImagesDir,“Omr_Results1.pdf”);控制台。WriteLine (“存到{0}…”, pdfFileName1);ocrDocument。保存(pdfFileName1 DocumentFormat.Pdf,);//更改OMR状态的字符表示为Y表示未填充,X表示已填充omrOptions.SetStateRecognitionCharacter (OcrOmrZoneState.Unfilled“Y”);omrOptions.SetStateRecognitionCharacter (OcrOmrZoneState.Filled“X”);字符串pdfFileName2 = Path.Combine(LEAD_VARS.ImagesDir,“Omr_Results2.pdf”);控制台。WriteLine (“存到{0}…”, pdfFileName2);ocrDocument。保存(pdfFileName2 DocumentFormat.Pdf,);//关闭引擎//注意:如果引擎已经启动,调用Dispose也会自动关闭引擎ocrEngine.Shutdown ();静态LEAD_VARS公共常量字符串ImagesDir =@“C: \ LEADTOOLS21 \ Resources \图片”公共常量字符串OcrLEADRuntimeDir =@“C: \ LEADTOOLS21 \ Bin \常见\ OcrLEADRuntime”
进口Leadtools进口Leadtools。编解码器进口Leadtools。光学字符识别进口Leadtools。形式进口Leadtools.Document.Writer进口Leadtools。WinForms公共OcrOmrExample ()创建引擎的一个实例使用ocrEngine作为IOcrEngine = OcrEngineManager.CreateEngine(ocrengintype . lead)使用默认参数启动引擎ocrEngine。启动(没有什么没有什么没有什么LEAD_VARS.OcrLEADRuntimeDir)“我们将在图片文件夹中使用LEADTOOLS附带的mix .tif。此图像有3个OMR复选标记昏暗的tifFileName作为字符串= Path.Combine (LEAD_VARS.ImagesDir“Mixed.tif”创建一个OCR文档使用ocrDocument作为IOcrDocument = ocreengine . documentmanager . createdocument ()在文档中添加一页昏暗的ocrPage作为IOcrPage = ocrDocument.Pages.AddPage(tifFileName,没有什么“增加OMR区域。我们之前计算了这幅图像的3个OMR区域边界昏暗的omrBounds作为LeadRect() = {LeadRect(484, 98, 84, 78),LeadRect(494, 184, 70,54),LeadRect(498, 244, 76,76)}每一个omrBound作为LeadRectomrBounds创建一个新的OMR区域并将其添加到页面中昏暗的作为OcrZone ()区。ZoneType = OcrZoneType。有机磁共振区。Bounds = omrBoundocrPage.Zones.Add(区)下一个“展示我们有多少个区域和它们的属性控制台。WriteLine ("页面有{0}个区域:", ocrPage.Zones。作为整数= 0ocrPage.Zones。- 1昏暗的作为OcrZone = ocrPage.Zones(i)控制台。WriteLine ({0}:类型:{1}, i + 1, zone.ZoneType)下一个改变OMR选项(自动检测最高灵敏度的帧)昏暗的omrOptions作为iocroroptions = ocreengine . zonmanager . omroptionsomrOptions。FrameDetectionMethod = OcrOmrFrameDetectionMethod。汽车omrOptions。灵敏度=光学字符识别有机磁共振灵敏度.最高获取我们在引擎中使用的字符来表示填充/未填充状态昏暗的filledCode作为字符= omrOptions.GetStateRecognitionCharacter (OcrOmrZoneState.Filled)昏暗的unfilledCode作为字符= omrOptions.GetStateRecognitionCharacter (OcrOmrZoneState.Unfilled)识别页面控制台。WriteLine (“认识……”ocrPage。识别(没有什么昏暗的pageCharacters作为IOcrPageCharacters = ocrPage.GetRecognizedCharacters()每一个zoneCharacters作为IOcrZoneCharacterspageCharacters我们必须有一个字符(每个OMR区域的状态)Debug.Assert (zoneCharacters。= 1)昏暗的字符作为OcrCharacter = zoneCharacters(0)Debug.Assert(字符。Code = filledCodeOrElse的性格。代码= unfilledCode)控制台。WriteLine (“{0}:状态:{1},信心:{2}”zoneCharacters。ZoneIndex,如果(性格。代码= filledCode,“填充”“空”),character.Confidence)下一个'现在使用OMR状态的默认字符表示将结果保存为PDF(0表示未填充,1表示填充)昏暗的pdfFileName1作为字符串= Path.Combine (LEAD_VARS.ImagesDir“Omr_Results1.pdf”控制台。WriteLine (“存到{0}…”pdfFileName1)ocrDocument。保存(pdfFileName1 DocumentFormat.Pdf,没有什么将OMR状态的字符表示改为Y表示未填充,X表示填充omrOptions.SetStateRecognitionCharacter (OcrOmrZoneState.Unfilled“Y”c)omrOptions.SetStateRecognitionCharacter (OcrOmrZoneState.Filled“X”c)昏暗的pdfFileName2作为字符串= Path.Combine (LEAD_VARS.ImagesDir“Omr_Results2.pdf”控制台。WriteLine (“存到{0}…”pdfFileName2)ocrDocument。保存(pdfFileName2 DocumentFormat.Pdf,没有什么结束使用关闭引擎注意:调用Dispose也会自动关闭引擎,如果它已经启动ocrEngine.Shutdown ()结束使用结束公共NotInheritableLEAD_VARS公共常量ImagesDir作为字符串“C: \ LEADTOOLS21 \ Resources \图片”公共常量OcrLEADRuntimeDir作为字符串“C: \ LEADTOOLS21 \ Bin \常见\ OcrLEADRuntime”结束
需求

目标平台

Leadtools。光学字符识别作为sembly
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。