[フィールド化] タブ (文字認識 (OCRMax) 識別ツール)
[フィールド化] タブは、文字認識 (OCRMax) 識別ツールのフィールド文字列およびフィールド定義のグラフィックスを作成、編集します。結果値は、リテラル文字列としてツールに挿入されます。
フィールド化することにより、文字列が正しいかどうか検証・訂正し、最もマッチする有効な文字列セットを返すことができます。フィールド化には主に 2 つの使用方法があります。
- OCR 結果の検証。フィールド文字列およびフィールド定義パラメータに基づき、返された文字列が正しいかどうかを決定します。
- OCR 結果の訂正。返された文字列が許容可能な結果リストにない場合、フィールド化によって許容された、返された文字列に一番近い文字列の検出を試みます。
フィールド化の一般的なユーザケースは、文字列に接頭辞/接尾辞が含まれる場合です。フィールドを使用して、これらの接頭辞/接尾辞を無視します。この場合、フィールド文字列およびフィールド定義は領域内の文字列ポジションオフセットを決定します。
文字列に含まれる文字数を指定します。フィールド文字列エントリには、(A~Z)、(a~z)、(0~9)、ハイフン (-) 、ドット (.) 、スペース ( ) など、[テキスト入力] ダイアログのすべての文字を使用できます。
フィールド文字列の各文字は、0~31 のインデックス付きポジションに対応します。フィールド文字列には、最低でも、文字列中の文字のポジション数と同じ数の文字が含まれていないと、PASS 結果は得られません。例えば、文字列に 10 個の文字があり、フィールド文字列が 9 文字のみ指定している場合、1 番マッチする 9 個の文字が返されます。反対に、文字列に 8 個の文字があり、フィールド文字列が 9 文字を指定している場合、#ERR が返されます。デフォルトでは、フィールド文字列の各ポジションは、アスタリスク (*) 、つまり英数字の「ワイルドカード」で示されます。これは、文字列のそのポジションではすべての文字が有効であることを意味します。
ただし、フィールド文字列の個別の位置は、その位置に一部の文字しか想定されないように制限することができます。すると、対象外の文字は読み取り時に考慮されないため、全体的な性能と信頼性が向上します。
定義済みのフィールド文字列エントリは、次のとおりです。
|
フィールド文字列 エントリ |
説明 | 有効な文字 |
|---|---|---|
| * | ワイルドカード | フォント内の任意の登録済み文字 |
| N | 数字 | 0123456789 |
| A | 大文字の英字 | ABCDEFGHIJKLMNOPQRSTUVWXYZ |
| a | 小文字の英字 | abcdefghijklmnopqrstuvwxyz |
| H | 16 進値 (大文字の英字と数字) | 0123456789ABCDEF |
| h | 16 進値 (小文字の英字と数字) | 0123456789abcdef |
| O | 8 進値 | 01234567 |
- フィールド文字列のある位置を特定の文字に制限する場合は、その文字を入力してください。文字はフォントに登録されている必要があります。また、「フィールド定義」パラメータを使用して再割り当てしない限り、上記の定義済みフィールド文字列エントリの文字を使用することはできません。
- スペースを含む文字列を読み取るには、フィールド文字列にスペースを含めます。その位置の対応するフィールド文字列エントリがアスタリスク (*) の場合、ReadText 関数はスペースを読み取りません。
フィールド文字列の例 1
フィールド文字列が「**********AN」の場合、1~10 番目のフィールド文字列位置ではフォントに含まれるすべての文字が有効です。ただし、11 番目の位置は、読み取り時に大文字の英字だけが想定されます。また、12 番目の位置は、数字だけが想定されます。
フィールド文字列の例 2
フォントには、0~9 の数字と / だけが含まれます。フィールド文字列が「NN/NN/NN」の場合、1、2、4、5、7、および 8 番目の位置では数字だけが想定されています。また、3 および 6 番目の位置ではスラッシュ (/) だけが想定されています。
ただし、フィールド文字列が「NN/NN/AA」の場合は、フォントに英字が含まれていないため、#ERR が返されます。
各文字ポジションにおいて、文字のフィールド化で指定した文字のみ含むよう、結果を制限するかどうかを指定します。ON にすると、分類化得点にかかわらず、フォント内のすべてのほかの文字を無視します。
必要に応じて、フィールド文字列のユーザ定義エントリを作成するためにフィールド定義設定を使用できます。このエントリをフィールド文字列に入力すると、その位置の読み取り対象文字が、定義リストに含まれる文字のみに限定されます。システム定義のフィールド定義の他に、ユーザ定義のフィールド定義も追加することができます。システム定義のフィールド定義は、グレーのテキストで表示され、削除したり、編集したりすることはできません。有効にしたり、無効にしたりすることのみ可能です。ユーザ定義のフィールド定義は、黒のテキストで表示され、追加したり、削除したり、または編集したりすることができます。フィールド定義を追加するには、[新規追加] ボタンを押して、その文字のアイコンを割り当ててから、定義を割りててください。
フィールド定義エントリのために示す文字は、フォントに含まれている必要があります。例えば、#=123 は、ユーザ登録フォントに 1、2、3 が含まれる場合に有効です。ただし、#=123 は、フォントに 1、2、3 が含まれない場合は無効です。
フィールド定義の例 1
フィールド定義の値が「#=123;$=3456;%=789」でフィールド文字列が「#$%*******」の場合、1 番目の位置では 1、2、または 3 だけが、2 番目の位置では 3、4、5、または 6 だけが、3 番目の位置では 7、8、または 9 だけが有効です。また、4~10 番目の位置ではフォントに含まれるすべての文字が有効です。
フィールド定義の例 2
フィールド定義の値が「#=123;$=3456;%=789, A=A」でフィールド文字列が「#$%******A」の場合、1 番目の位置では 1、2、または 3 だけが、2 番目の位置では 3、4、5、または 6 だけが、3 番目の位置では 7、8、または 9 だけが有効です。また、4~9 番目の位置ではフォントに含まれるすべての文字が有効です。フィールド定義「A=A」は定義済みのフィールド文字列エントリを再割り当てするため、10 番目の位置では A だけが想定されています。