【示例教程】LEADTOOLS中如何經過OCR識別獲取每一行文本

LEADTOOLS可幫您開發出功能強大的文檔圖像應用程序。其主要功能包括綜合圖像註釋,專業的黑白圖像顯示(例如灰度級和偏黑),以及專業的黑白圖像處理。其它功能包括對黑白圖像的性能和內存進行優化,文檔圖像清理(包括倒置文本,去邊界,去打孔機和去線)以及使用LEADTOOLS Fast TWAIN和WIA進行掃描。性能

本篇文介紹如何經過OCR分別識別獲取文檔的每一行文本。有一種方法相似於咱們的IOcrZoneCharacters.GetWords方法可檢索文檔的每一行。OCR引擎識別的每一個字符都有一個位置。咱們能夠經過OcrCharacter 結構的position 屬性訪問這個位置。返回一個或多個OcrCharacterPosition 枚舉成員:優化

下面寫了一個簡單的小例子,用OcrCharacterPosition 來分別識別出每一行的文字。code

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);
                  }
               }
            }
         }
      }
   }
}

2017慧都十四週年狂歡搞事情!砸金蛋100%抽現金紅包、滿額豪送iPhone X、iPhone 八、DevExpress漢化免費送、團隊升級培訓套包勁省10萬元......更多驚喜等您來探索!blog

相關文章
相關標籤/搜索