Japanese (日本語)

サンプル4。ステップ5.5:Invoice Dateフィールド、grDate、InvoiceDate、InvoiceDateAsString要素

画像を調べると、以下に気づくでしょう:

  • Invoice Dateフィールドがフィールド名の右に位置している文書もあれば、名前の下に位置している文書もあります。従って、検索領域を名前の右と下の矩形に制限します。
  • Date要素を使用して日付を探します。また、以下の条件を指定します。フィールド名が検出されない場合は、フィールドデータを検索しない。
  • 日付が低い信頼性で認識されることもよくあります。原因には、スキャンの不具合、無効な日付形式などがあります。従って、日付要素が日付を見つけられない場合に備えて、追加的な文字列要素を指定します。

すべての要素に共通する設定として、グループ種類の要素を作成します。

グループ種類のgrDate要素を作成するには:

  1. InvoiceHeader要素で、種類グループの要素を作成して名前をgrDateと付けます。
  2. 高度タブをクリックして、追加的な検索制限を指定します:検索領域を、フィールド名の右の1つの矩形およびオフセット付きのフィールド名の下の矩形で構成される矩形の配列に制限します。FlexiLayout言語では、この制限は以下のように書き込みできます:
    RectArray DataRegion;
    Let r1= Rect (kwInvoiceDate.Rect.Right, kwInvoiceDate.Rect.Top -20dt, kwInvoiceDate.Rect.Right + 650dt, kwInvoiceDate.Rect.Bottom + 50dt);
    Let r2 = Rect (kwInvoiceDate.Rect.Left - 150dt, kwInvoiceDate.Rect.Bottom, kwInvoiceDate.Rect.Right + 100dt, kwInvoiceDate.Rect.Bottom + 100dt);

    DataRegion = RectArray (r1);
    DataRegion.Add (r2);
    RestrictSearchArea (DataRegion);

InvoiceDate要素を作成するには:

  1. InvoiceHeader.grDate要素で、種類日付の要素を作成して名前をInvoiceDateと付けます。
  2. 日付タブをクリックします。
  3. InvoiceDate要素の可能なすべての日付形式を指定します:

    表示...

  1. 一部の画像では、Invoice Dateフィールドの検索領域に既に検出されているkwInvoiceNumberおよびInvoiceNumber要素が含まれます。これらの要素の値がInvoice Dateフィールドの仮説と見なされないようにするには、これらの要素を検索領域から除外します:
    • 要素区域を除外フィールドの隣の追加...ボタンをクリックします。
    • 要素のリストからkwInvoiceNumberを選択します。
    • OKをクリックします。文字列SearchElements.InvoiceHeader.kwInvoiceNumber要素区域を除外フィールドに表示されます。

要素SearchElements.InvoiceHeader.InvoiceNumberに上の手順を繰り返します。

  1. 高度タブをクリックします。
  2. Invoice Dateフィールドは必須要素ではありません。しかしながら、文書に日付が含まれている場合(Invoice Dateフィールド)、常に文書に対応するフィールド名があります(kwInvoiceDate要素で記述)。従って、高度な検索前関係で追加的な検索条件を指定できます:kwInvoiceDateが検出された場合のみ、画像オブジェクトを検索しますFlexiLayout言語では、この条件は以下のように書き込みできます:
    If InvoiceHeader.kwInvoiceDate.IsNull
    Then DontFind();
  3. InvoiceFooter要素を一時的に除外してFlexiLayoutを合致させます。

認識結果が日付要素のどの標準パラメータにも合わないような質の悪い画像の場合、条件を緩和して請求日フィールドを検索する代替要素を追加します。

InvoiceDateAsString要素を作成するには:

  1. InvoiceHeader.grDate要素で、種類文字列の要素を作成して名前をInvoiceDateAsStringと付けます。
  2. 文字列タブをクリックします。
  3. アルファベットを指定します:
    ,-./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
  4. 非アルファベット文字の割合を30%に設定します。
  5. 文字カウントフィールドで、文字列の長さのファジー間隔{-1, 8, 14, INF}を、可能な値を8〜14文字と仮定しながら指定します。この範囲外の仮説にはペナルティが科せられます。
  6. 最大スペース長さを20に設定します。これにより、テキスト文字列の最大スペース長さが20ドットに制限されます。
  7. 他の要素のプロパティでは、デフォルト設定を維持します。
  8. 高度タブをクリックします。
  9. 画像でInvoiceDateが検出されない場合に限りInvoiceDateAsString要素を検索するため、高度な検索前関係フィールドで以下の条件を指定します:InvoiceDate要素が検出されない場合に限り画像オブジェクトを検索する。FlexiLayout言語では、この条件は以下のように書き込みできます:
    If Not InvoiceDate.IsNull Then DontFind;
  10. 上記のようなInvoiceDateの追加条件を指定します:kwInvoiceDate要素が検出された場合に限り画像オブジェクトを検索する。kwInvoiceDate要素に最も近い画像オブジェクトを検索するFlexiLayout言語では、この条件は以下のように書き込みます:
    If InvoiceHeader.kwInvoiceDate.IsNull Then DontFind;
    Nearest: InvoiceHeader.kwInvoiceDate;
  11. InvoiceDateブロックの位置を、5ドットずつ縦横に拡大した検出済みInvoiceDate要素またはInvoiceDateAsString要素の矩形区域として指定します。これには、表現オプションを選択して以下の表現を入力します:
    Rect outputRect;
    if not InvoiceHeader.grDate.InvoiceDate.IsNull then
    outputRect = InvoiceHeader.grDate.InvoiceDate.Rect;
    else
    { outputRect = InvoiceHeader.grDate.InvoiceDateAsString.Rect;
    IsNull = InvoiceHeader.grDate.InvoiceDateAsString.IsNull;
    }
    OutputRegion = outputRect;
    OutputRegion.Inflate (5dt, 5dt);

12.04.2024 18:16:07

Please leave your feedback about this article

Usage of Cookies. In order to optimize the website functionality and improve your online experience ABBYY uses cookies. You agree to the usage of cookies when you continue using this site. Further details can be found in our Privacy Notice.