Japanese (日本語) - Change language

サンプル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);

10.11.2020 12:08:07


Please leave your feedback about this article