サンプル4。ステップ9.2:Total Amountフィールド、TotalAmount要素
名前の右と下の両方でTotalAmountフィールドを検索します。
TotalAmountフィールドの作成方法:
- SumGroup要素で、種類文字列の要素を作成して名前をTotalAmountと付けます。
- 文字列タブをクリックします。
- アルファベットを指定します:
',-.0123456789OSZosz - 非アルファベット文字の割合を30%に設定します。
- 文字カウントフィールドで、文字列の長さを評価するあいまい間隔{-1, 1, 20, INF}を指定します。可能な値はすべて1〜20文字と仮定します。この範囲外の仮説にはペナルティが科せられます
- 追加の制限を設けずに、デフォルト設定を維持してください。
- 検索制限タブをクリックして、kwTotal要素の仮説区域を検索領域から除外します。
- 高度タブをクリックします。
- 高度な検索前関係で追加的な検索制限を指定します:kwTotal名が検出された場合は、検索領域を矩形配列として指定します:フィールド名の右に1つの矩形、オフセット付きフィールド名の下に1つの矩形。そうでない場合は、画像オブジェクトを検索しないでください。FlexiLayout言語では、この条件は以下のように書き込みできます:
If not kwTotal.IsNull Then
// If the field name kwTotal has been detected
{
WholeWordMOde: true;
MaxGapInLine: 30dt;
RectArray DataRegion;
Let r1= Rect (kwTotal.Rect.Right, kwTotal.Rect.Top -20dt, kwTotal.Rect.Right + 1800dt, kwTotal.Rect.Bottom + 50dt);
// 検索領域をフィールド名右の矩形に限定します。
Let r2 = Rect (kwTotal.Rect.Left - 100dt, kwTotal.Rect.Bottom, kwTotal.Rect.Right + 100dt, kwTotal.Rect.Bottom + 200dt);
// 検索領域をフィールド名下の矩形に限定します。
DataRegion = RectArray (r1);
DataRegion.Add (r2);
RestrictSearchArea (DataRegion);
}
else Dontfind();
// そうでなければ、オブジェクトを探しません。 - フィールド値の検索領域は、フィールド名の右と下の2つの矩形に制限されています。フィールド値がフィールド名の右にある場合、ほとんどの画像でフィールド名の下にテキストがあります。ほとんどの画像で、この冗長なテキストがTotalAmountフィールドの検索領域に含まれているので、このテキストの仮説が作成されます。この仮説の質に影響を及ぼすため(すなわち品質を低下させる)、高度な検索後関係で追加の確認を指定します:フィールド名の下のフィールド値が低いほど、ペナルティが大きくなる。FlexiLayout言語では、この確認は以下のように書き込みできます:
If not IsNull then
{FuzzyQuality: 400dt - width, {-50000,0,0, 50000}*dt;
//区域の広さ400ドットの要素の仮説には最大の質があります
if width < 50dt then Quality: 0;
// 50ドット以下の要素は考慮されません
if Top > kwTotal.Rect.Top then
{ FuzzyQuality: Top - kwTotal.Rect.Top, {0,0,0, 20000}*dt;
}
}
//この確認は差が大きいほど、ペナルティが大きくなることを意味します。
注意:2D座標系は、ページのオブジェクトの位置とそれらオブジェクトの間の距離を記述するために使用されます。(0, 0)ポイントは画像の左上にあります。横軸は左から右に、縦軸は上から下に向きます。 - FlexiLayoutを合致させて、発生するすべての画像の要素を高い信頼性で検出するようにします。
- TotalAmountブロックの位置を、5ドットずつ縦横に拡大したTotalAmount要素の矩形区域として指定します。これには、表現を選択して、以下の表現を指定します:
Rect outputRect;
outputRect = SumGroup.TotalAmount.Rect;
IsNull = SumGroup.TotalAmount.IsNull;
OutputRegion = outputRect;
OutputRegion.Inflate (5dt, 5dt);
12.04.2024 18:16:07