【示例教程】LEADTOOLS中如何通过OCR识别获取每一行文本

来源:互联网 发布:淘宝客佣金5元怎么设置 编辑:程序博客网 时间:2024/06/08 00:02
LEADTOOLS可帮您开发出功能强大的文档图像应用程序。其主要功能包括综合图像注释,专业的黑白图像显示(例如灰度级和偏黑),以及专业的黑白图像处理。其它功能包括对黑白图像的性能和内存进行优化,文档图像清理(包括倒置文本,去边界,去打孔机和去线)以及使用LEADTOOLS Fast TWAIN和WIA进行扫描。
 
本篇文介绍如何通过OCR分别识别获取文档的每一行文本。有一种方法类似于我们的IOcrZoneCharacters.GetWords方法可检索文档的每一行。OCR引擎识别的每个字符都有一个位置。我们可以通过OcrCharacter 结构的position 属性访问这个位置。返回一个或多个OcrCharacterPosition 枚举成员:
 
下面写了一个简单的小例子,用OcrCharacterPosition 来分别识别出每一行的文字。
using (RasterCodecs codecs = new RasterCodecs()){   codecs.Options.RasterizeDocument.Load.XResolution = 300;   codecs.Options.RasterizeDocument.Load.YResolution = 300;   RasterImage image = codecs.Load(inputFile);   using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Professional, false))   {      ocrEngine.Startup(null, null, null, @"C:\LEADTOOLS 19\Bin\Common\OcrProfessionalRuntime64");      using (IOcrDocument document = ocrEngine.DocumentManager.CreateDocument())      {         document.Pages.AddPage(image, null);         document.Pages[0].Recognize(null);         IOcrPageCharacters pageCharacters = document.Pages[0].GetRecognizedCharacters();         for (int i = 0; i < document.Pages[0].Zones.Count; i++)         {            IOcrZoneCharacters zoneCharacters = pageCharacters.FindZoneCharacters(i);            if (zoneCharacters != null)            {               foreach (var ocrCharacter in zoneCharacters)               {                  OcrCharacterPosition position;                  position = ocrCharacter.Position;                  if ((position & OcrCharacterPosition.EndOfLine) == OcrCharacterPosition.EndOfLine)                  {                     Console.Write(ocrCharacter.Code + "\n");                  }                  else                  {                     Console.Write(ocrCharacter.Code);                  }               }            }         }      }   }}

原创粉丝点击