LEADTOOLS OCR(Leadtools.Forms.Ocrアセンブリ)

フレームを表示

IOcrAutoRecognizeManagerインターフェース








メンバ 
無人での認識操作に適したOCRの「ファイアー&フォゲット」アプローチ(1回の呼び出してすべてのOCR認識処理を行う)のサポートを提供します。
オブジェクトモデル
構文
public interface IOcrAutoRecognizeManager 
'Declaration
 
Public Interface IOcrAutoRecognizeManager 
'Usage
 
Dim instance As IOcrAutoRecognizeManager
public interface IOcrAutoRecognizeManager 
@interface LTOcrAutoRecognizeManagerJobError : NSObject
public class OcrAutoRecognizeManager
function Leadtools.Forms.Ocr.IOcrAutoRecognizeManager() 
public interface class IOcrAutoRecognizeManager 
解説

IOcrEngine.AutoRecognizeManagerプロパティを通してIOcrEngineにより用いられるIOcrAutoRecognizeManagerのインスタンスにアクセスすることができます。

このインターフェースのメンバは、オプションの進捗とステータスモニターでディスク上で画像ファイルからドキュメントを作成させます。

このIOcrEngineによってサポートされる文書形式で任意のもので最終的なドキュメントにディスク上で1 imageにつき1行のcodeで変換するために、実行されたメソッドを使うことができます。

CreateJobメソッドを用いてジョブを作成することもできて、それからRunJobを通して、または、非同期でRunJobAsyncを通して同期して実行することもできます。

IOcrAutoRecognizeManagerインターフェースは、走力RunJobRunJobAsyncメソッドの利用に、以下のオプションも持っています:

メンバ 説明
PreprocessPageCommands

認識の前に各々のページドキュメントの上で実行する操作を自動前処理することを制御するために、OcrAutoPreprocessPageCommand項目の配列を保持します。

JobErrorMode

致命的なエラーなしで再開する機能。たとえば、ソースドキュメントがページを持っているならば、それは認められることができません。そのページはグラフィック画像として最終文書に追加され、次のページに認識処理が進みます。

JobStartedJobProgressJobOperationJobCompletedイベント

同期および非同期ジョブが開始したとき、実行されているとき、および完了したときを追跡するイベント。

AbortAllJobs

すべての実行と保留のジョブを中止します。

EnableTrace

標準.NETトレースリスナーにデバッグメッセージを出力します。

MaximumPagesBeforeLtd

重要:LEADTOOLS Advantage OCRエンジンで使われません。

エンジンがそれをサポートしないならば、無制限の頁数でドキュメントを変換することのサポートを追加します。大量のページ(10その他)を格納するドキュメントの上のOCR認識操作は、メモリー不足のエラーに終わるかもしれません。

LEADTOOLS OCRエンジンの全ては、当面のLTDファイル(DocumentFormat.LTD)に中間認識結果を保存することをサポートします。以降のページの結果は、この一時ファイルに追加されます。文書のすべてのページの認識が済んだら、この一時ファイルが目的の形式に変換されます。

LEADTOOLS Advantage OCRエンジンはファイルベースのドキュメントを用いて内部的にこの操作を処理して、一度にメモリ内の1ページ以上をロードしないで、MaximumPagesBeforeLtdの値を使いません。

他のエンジンについては、MaximumPagesBeforeLtdプロパティは、全体として処理される最大頁数を定義します。たとえば、オリジナルドキュメントが20ページを持っている、そして、このプロパティの値が8であるならば、エンジンは最初の8ページを認識して、一時ファイルに結果を保存すると、第2は8ページ認めます、そして、結果を追加します、そして、最後に、最後の4ページを認めて、最終形式に一時的なドキュメントを変換します。

MaximumThreadsPerJob

1つのジョブあたりに使用する最大スレッド数。ドキュメントを認めるとき、すべての利用できるマシンCPU/コアを使うために、IOcrAutoRecognizeManagerを指示することができます。そうすると、OCR操作に必要な時間が大幅に短縮されます。

LEADTOOLS Advantage OCRエンジンはシステムスレッドプールを使用し、スレッド数を設定する必要はありません。値1によりスレッド処理が無効化され、そのほかの値は「マルチスレッド処理を使用」として扱われます。

IOcrAutoRecognizeManagerは、ラスター画像を修正するか、ページのOCR処理を行うか、操作の一部の間のドキュメントのOCR処理を行うことができます。詳細はサンプルの原因はOcrAutoRecognizeJobOperationEventArgs.PageImageにあるとみなします。

一部のOCRエンジンタイプは、1つのIOcrEngineと複数のIOcrDocumentまたはIOcrAutoRecognizeJobをそれぞれ独自の専用スレッドで作成することによりマルチスレッド化された文書の作成をサポートします。詳細については、「LEADTOOLS OCRによるマルチスレッド」を参照してください。

サンプル

このサンプルは、デスティネーションフォルダでPDFにソースフォルダでTIFファイルを変換します

複数のスレッドで同期と中止しているサポートと同時に、複数のジョブを実行する方法のサンプルのために、RunJobを参照します。

Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Forms.Ocr
Imports Leadtools.Forms.DocumentWriters
Imports Leadtools.Forms
Imports Leadtools.WinForms

<TestMethod>
Public Sub OcrAutoRecognizeManagerExample()
   Console.WriteLine("Preparing the source and destination directories...")
   Dim sourceDirectory As String = LEAD_VARS.ImagesDir
   Dim destinationDirectory As String = Path.Combine(LEAD_VARS.ImagesDir, "AutoRecognizeManagerExample")

   ' Prepare the output directory
   If Not Directory.Exists(destinationDirectory) Then
      Directory.CreateDirectory(destinationDirectory)
   End If

   ' OCR some images from the source directory into the destination directory:
   Dim imageFiles As IList(Of String) = New List(Of String)()

   For i As Integer = 1 To 4
      imageFiles.Add(Path.Combine(sourceDirectory, String.Format("Ocr{0}.tif", i)))
   Next

   Console.WriteLine("Creating an instance of the engine...")

   ' Create an instance of the engine
   Using ocrEngine As IOcrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, False)
      ' Start the engine using default parameters
      Console.WriteLine("Starting up the engine...")
      ocrEngine.Startup(Nothing, Nothing, Nothing, LEAD_VARS.OcrAdvantageRuntimeDir)

      Dim ocrAutoRecognizeManager As IOcrAutoRecognizeManager = ocrEngine.AutoRecognizeManager

      ' Use LTD as a temporary format if a document has more than 4 pages to save memory
      ocrAutoRecognizeManager.MaximumPagesBeforeLtd = 4

      ' Use maximum CPUs/cores of current machine to speed up recognition
      ' Either passing 0 or System.Environment.ProcessorCount
      ocrAutoRecognizeManager.MaximumThreadsPerJob = 0

      ' Deskew and auto-orient all pages before recognition
      ocrAutoRecognizeManager.PreprocessPageCommands.Clear()
      ocrAutoRecognizeManager.PreprocessPageCommands.Add(OcrAutoPreprocessPageCommand.Deskew)
      ocrAutoRecognizeManager.PreprocessPageCommands.Add(OcrAutoPreprocessPageCommand.Rotate)

      ' Create PDFs with Image/Text option
      Dim pdfOptions As PdfDocumentOptions = TryCast(ocrEngine.DocumentWriterInstance.GetOptions(DocumentFormat.Pdf), PdfDocumentOptions)
      pdfOptions.ImageOverText = True
      ocrEngine.DocumentWriterInstance.SetOptions(DocumentFormat.Pdf, pdfOptions)

      ' Loop through all the TIF files in the source directory, convert to PDF in the destination directory
      For Each imageFile As String In imageFiles
         ' Construct the name of the document file
         Dim documentFileName As String = Path.Combine(destinationDirectory, Path.GetFileNameWithoutExtension(imageFile))
         documentFileName = Path.ChangeExtension(documentFileName, "pdf")

         ' OCR the file
         Console.WriteLine("Processing {0}", imageFile)
         ocrAutoRecognizeManager.Run(imageFile, documentFileName, DocumentFormat.Pdf, Nothing, Nothing)
         Console.WriteLine("Saved: {0}", documentFileName)
      Next
   End Using
End Sub

Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
Public Const OcrAdvantageRuntimeDir As String = "C:\LEADTOOLS 19\Bin\Common\OcrAdvantageRuntime"
End Class
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Forms.Ocr;
using Leadtools.Forms.DocumentWriters;
using Leadtools.Forms;
using Leadtools.WinForms;

public void OcrAutoRecognizeManagerExample()
{
   Console.WriteLine("Preparing the source and destination directories...");
   string sourceDirectory = LEAD_VARS.ImagesDir;
   string destinationDirectory = Path.Combine(LEAD_VARS.ImagesDir, "AutoRecognizeManagerExample");

   // Prepare the output directory
   if (!Directory.Exists(destinationDirectory))
   {
      Directory.CreateDirectory(destinationDirectory);
   }

   // OCR some images from the source directory into the destination directory:
   IList<string> imageFiles = new List<string>();

   for (int i = 1; i <= 4; i++)
   {
      imageFiles.Add(Path.Combine(sourceDirectory, string.Format("Ocr{0}.tif", i)));
   }

   Console.WriteLine("Creating an instance of the engine...");

   // Create an instance of the engine
   using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, false))
   {
      // Start the engine using default parameters
      Console.WriteLine("Starting up the engine...");
      ocrEngine.Startup(null, null, null, LEAD_VARS.OcrAdvantageRuntimeDir);

      IOcrAutoRecognizeManager ocrAutoRecognizeManager = ocrEngine.AutoRecognizeManager;

      // Use LTD as a temporary format if a document has more than 4 pages to save memory
      ocrAutoRecognizeManager.MaximumPagesBeforeLtd = 4;

      // Use maximum CPUs/cores of current machine to speed up recognition
      // Either passing 0 or System.Environment.ProcessorCount
      ocrAutoRecognizeManager.MaximumThreadsPerJob = 0;

      // Deskew and auto-orient all pages before recognition
      ocrAutoRecognizeManager.PreprocessPageCommands.Clear();
      ocrAutoRecognizeManager.PreprocessPageCommands.Add(OcrAutoPreprocessPageCommand.Deskew);
      ocrAutoRecognizeManager.PreprocessPageCommands.Add(OcrAutoPreprocessPageCommand.Rotate);

      // Create PDFs with Image/Text option
      PdfDocumentOptions pdfOptions = ocrEngine.DocumentWriterInstance.GetOptions(DocumentFormat.Pdf) as PdfDocumentOptions;
      pdfOptions.ImageOverText = true;
      ocrEngine.DocumentWriterInstance.SetOptions(DocumentFormat.Pdf, pdfOptions);

      // Loop through all the TIF files in the source directory, convert to PDF in the destination directory
      foreach (string imageFile in imageFiles)
      {
         // Construct the name of the document file
         string documentFileName = Path.Combine(destinationDirectory, Path.GetFileNameWithoutExtension(imageFile));
         documentFileName = Path.ChangeExtension(documentFileName, "pdf");

         // OCR the file
         Console.WriteLine("Processing {0}", imageFile);
         ocrAutoRecognizeManager.Run(imageFile, documentFileName, DocumentFormat.Pdf, null, null);
         Console.WriteLine("Saved: {0}", documentFileName);
      }
   }
}

static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
public const string OcrAdvantageRuntimeDir = @"C:\LEADTOOLS 19\Bin\Common\OcrAdvantageRuntime";
}
必要条件

ターゲットプラットホーム

参照

参照

IOcrAutoRecognizeManagerメンバ
Leadtools.Forms.Ocr名前空間
Leadtools.Forms.DocumentWriters.DocumentFormat
IOcrEngineインターフェース
OcrEngineManagerクラス
OcrEngineType列挙体
LEADTOOLS .NET OCRによるプログラミング
OCRページの操作
LEADTOOLS OCRによるマルチスレッド
LEADTOOLSは、thunkサーバのOCR処理を行います
アプリケーションに含まれるファイル

Leadtools.Forms.Ocrは、認識またはDocument Imaging Suiteのライセンスと、解除キーが必要です。詳細は、以下を参照してください。LEADTOOLSツールキット機能