メインコンテンツへスキップ
このオブジェクトは、Linux および Windows 向けの FRE に実装されています。
これは、入力画像を認識済みページ (FRPage オブジェクト) に変換するプロセッサ オブジェクトです。 プロセッサが初期化されると、非同期の認識プロセスが起動され、設定されます。次に、プロセッサはカスタム画像ソースから画像ファイルを取得します。画像ファイルの各ページに対して新しい処理タスクが作成され、そのタスクは認識プロセスのいずれか 1 つに渡されます。1 つのファイルに対するすべてのタスクが処理に回され、なおかつ認識プロセスのすべてが使用中ではない場合は、ソースの画像キューから次の画像ファイルが取得され、処理に回されます。これは、最初の画像ページが変換されてユーザーに渡されるまで続きます。ページは、画像ソースから取得された順序でユーザーに返されます。 Batch Processor を使用して処理を構成するには、次の手順を実行します。
  1. 画像ソースおよびその中のファイルへのアクセスを提供する IImageSource インターフェイスと IFileAdapter インターフェイスを実装します。
  2. [任意] 処理を管理するために IAsyncProcessingCallback インターフェイスを実装します。このインターフェイスのメソッドを使用すると、エラーを処理したり、処理をキャンセルしたりできます。
  3. Engine オブジェクトの CreateBatchProcessor メソッドを呼び出して、BatchProcessor オブジェクトを取得します。
  4. PageFlushingPolicy プロパティを使用して、メモリ内の文書ページの処理モードを設定します。
  5. Start メソッドを呼び出して、プロセッサを初期化し、非同期の認識プロセスを開始します。このメソッドでは、画像ソースと処理設定を指定できます。
  • BatchProcessor オブジェクトは再利用できません。Start メソッドを繰り返し呼び出すとエラーが発生します。
  • 複数の Batch Processor を同時に作成して使用しないでください。処理中のページが混同されるおそれがあります。
  1. GetNextProcessedPage メソッドが 0 を返すまで、ループで呼び出します。0 は、ソース内にこれ以上画像がなく、処理済みのすべての画像がユーザーに返されたことを意味します。
GetNextProcessedPage メソッドによって返されるページは、このメソッドの次回の呼び出しまで有効です。したがって、このページを保存する場合は、GetNextProcessedPage メソッドを次に呼び出す前に、FRPage オブジェクトのメソッドを使用して保存するか、IFRDocument::AddPage メソッドを使用して既存の文書に追加する必要があります。

プロパティ

名前説明
ApplicationEngine, 読み取り専用Engine オブジェクトを返します。
PageFlushingPolicyPageFlushingPolicyEnum対応するページの ImageDocument オブジェクトおよび Layout オブジェクトへの参照が存在しない場合に、それらをアンロードしてディスクに保存するかどうかを指定します。 <Note> Linux では、このプロパティの値が PFP_KeepInMemory に設定されている場合、未使用ページの ImageDocument オブジェクトおよび Layout オブジェクトはディスクに保存されません。 </Note> <Note> Windows でドキュメント内の個々のページについて ImageDocument オブジェクトおよび Layout オブジェクトをアンロードしてディスクに保存するには、対応するページに対して IFRPage::Flush メソッドを使用します。 </Note> このプロパティの既定値は PFP_Auto です。

メソッド

名前説明
GetNextProcessedPage次の認識済み画像が利用可能になるまで、バックグラウンドで処理を実行します。
ProcessPageAsync別のパラメーターを指定して、ページを再処理できます。ページは処理キューの先頭または末尾に追加できます。
StartBatch Processor を動作可能な状態にします。このメソッドは非同期の認識処理を開始し、画像のソースと処理設定を指定します。

出力パラメーター

このオブジェクトは、Engine オブジェクトの CreateBatchProcessor メソッドの出力パラメーターです。

サンプル

// Batch Processor を作成
FREngine.IBatchProcessor batchProcessor = engine.CreateBatchProcessor();
FREngine.IFRDocument document = engine.CreateFRDocument();
// プロセッサを初期化
FREngine.IImageSource imageSource = new CImageSource; // このクラスはユーザーが実装します
batchProcessor.PageFlushingPolicy = FREngine.PageFlushingPolicyEnum.PFP_KeepInMemory;
batchProcessor.Start( imageSource, null, null, null );
// 処理を開始
while( true ) {
 FREngine.IFRPage page = batchProcessor.GetNextProcessedPage();
 if( page == null ) {
  break; // これ以上ページがないため、処理を終了
 }
 // ページに対して何らかの処理を行う
 ...
 document.AddPage( page );
}
このオブジェクトは、次のコード サンプル BatchProcessing およびデモ ツール BatchProcessingRecognition で使用されています。

関連項目

Parallel Processing with ABBYY FineReader Engine IImageSource