メインコンテンツへスキップ
ABBYY FineReader Engine では、画像を、処理対象のドキュメントを表す FRDocument オブジェクトに読み込んで扱います。

画像を開く

ドキュメントに画像を読み込むには、次のいずれかの方法を使用します。 これらのメソッドはすべて、画像の前処理に関するさまざまなパラメーターを指定できるPrepareImageModeオブジェクトをパラメーターとして受け取ります。このオブジェクトを作成するには、IEngine::CreatePrepareImageModeメソッドを呼び出し、必要に応じてそのプロパティを変更したうえで、上記のいずれかのメソッドに渡します。 既存のImageDocumentオブジェクト (たとえば、内部形式のファイルから読み込まれたもの) を、FRDocumentオブジェクトのAddImageDocumentメソッドを使用して追加することもできます。

ImageDocument の構造

ドキュメントに読み込まれると、各ページの画像には IFRPage::ImageDocument プロパティを通じてアクセスできます。ABBYY FineReader Engine で開かれている各画像は、ImageDocument オブジェクトとして表されます。ImageDocument は、いわゆる「internal format」で画像を保存します。このフォーマットには、Image オブジェクトとして表される 4 つの画像プレーンが含まれます。
  • Black-and-white プレーン。ソース画像の白黒コピーです。
  • Gray プレーン。ソース画像のグレースケールコピーです。ソース画像が白黒だった場合、このページは black-and-white プレーンと同じになります。
  • Color プレーン。ソース画像のカラーコピーです。ソース画像が白黒だった場合、このページは black-and-white プレーンと同じになります。グレースケールだった場合は、gray プレーンと同じになります。
  • Preview。ユーザーインターフェースで preview image を表示するために使用される小さなカラー画像です。preview は、GetPreviewImage または GetPreviewImageSpecificSize メソッドの呼び出し時に作成されます。自動または手動による画像の変更によって、作成済みの preview がリセットされることがあり、その場合は再度作成する必要があります。
Black-and-white、gray、color の各画像のサイズと解像度は同じです。preview image は通常、これらより小さいサイズになります。 画像を開く際に、画像が deskewed される場合があります。元の画像上の座標と、開いた後または追加の変更後の座標を対応付けるには、CoordinatesConverter オブジェクトを使用します。このオブジェクトは、取得された時点での座標の状態を保持します。このオブジェクトを使用して、画像処理における任意の 2 つのステージ間でピクセル座標を変換できます。例を以下に示します。
  1. 画像を開いた直後 (この時点で画像の skew が補正されています) に、IImageDocument::CoordinatesConverter プロパティを使用してこのオブジェクトを取得します。
  2. その後、別の変更を加えてから、ImageDocument から別のインスタンスを取得します。
  3. ConvertCoordinates メソッドを 2 回適用することで、最初に deskewed された画像プレーンと変更後の画像プレーンの間でピクセル座標を変換できます。
    1. CoordinatesConverter の最初のインスタンスを使用して、deskewed された画像プレーンから元の画像プレーンに変換します。
    2. CoordinatesConverter の 2 番目のインスタンスを使用して、変換結果を元の画像プレーンから変更後の画像プレーンに変換します。
同じメソッドを使用して、フルサイズの画像プレーンのいずれかから preview image プレーンへ、またはその逆方向にピクセル座標を変換することもできます。Black-and-white、gray、color の各画像プレーン上のピクセルの座標は同じです。
自動または手動による画像の変更によって、以前に作成された preview image プレーンがリセットされることがあり、その場合はその preview との間で座標を変換できなくなります。座標を変換する前に、画像が変更されていた場合は GetPreviewImage メソッドを再度呼び出してください。

画像の修正

画像をOptical Character Recognition (OCR)用に準備するには、自動前処理機能を使用するのが最適です。プログラムは画像の元の状態や文書の種類を判別し、不適切な向き、解像度、画像の傾きも検出して、これらすべての情報を考慮しながら画像を補正します。追加の画像修正は、自動前処理後の結果に満足できない場合にのみ行うことをお勧めします。
画像を開く際の修正は、PrepareImageModeオブジェクトによって管理されます。 画像を開いた後は、次の方法で修正できます。

画像の保存

Image オブジェクトの WriteToFile メソッドを使用すると、現在の画像プレーンを指定した形式の画像ファイルに保存できます。 ABBYY FineReader Engine には、複数の画像を 1 つの画像ファイルに保存する機能もあります。複数ページの画像ファイルを保存するには、MultipageImageWriter オブジェクトを使用します。
  1. Engine オブジェクトの CreateMultipageImageWriter メソッドを使用して、MultipageImageWriter オブジェクトを作成します。
  2. MultipageImageWriter オブジェクトの AddPage メソッドを使用して、複数ページの画像ファイルの末尾に画像を追加します。各画像は 1 ページとして追加されます。
  3. 新しく作成した画像ファイルを使用可能にするには、MultipageImageWriter オブジェクトへのすべての参照を解放する必要があります。
ImageDocument オブジェクトには一連の保存メソッド (SaveToSaveToFileSaveToMemory) が用意されていますが、これらのメソッドを使用して外部形式で画像を保存することはできません。これらのメソッドは、ImageDocument オブジェクトの内容を ABBYY FineReader Engine の内部形式で保存します。この形式は外部プログラムでは表示できません。

関連項目

サポートされている画像形式