ReadText
ユーザ登録フォントの文字モデルを使用して画像領域内のテキスト文字列を読み取ります。
- TrainFont、ReadText、VerifyText の各関数は、In-Sight ファームウェア 4.x.x を搭載した In-Sight ビジョンシステムのみで使用可能です。In-Sight ファームウェア 5.1.0 以上を実行している In-Sight ビジョンシステムでは使用できません。モデル一覧およびサポートされているファームウェアバージョンについては、「ファームウェアバージョン」を参照してください。
- レガシー関数である ReadText、TrainFont および VerifyText 関数の代わりに、OCRMax 関数を使用することを推奨します。OCRMax 関数には拡張性能機能が搭載されています。
- テキスト文字列がすでにわかっている場合は、常に VerifyText 関数を使用します。テキスト文字列の読み取りがより速く、より正確に行われるようになります。
- スピードの要求されないアプリケーションでは、スケール許容を ON にしてください。文字サイズのわずかな変化のために検出精度が大きく低下するのを防ぐことができます。
- 文字列でない場所を誤って検出した場合、または、文字列がどこにも検出されなかった場合は、疑字背景を ON にして、再試行します。
- 文字認識中に誤読が発生した場合は、読み取りモードを [高速] から [高精度] に切り替えます。[高精度] を選択した場合、文字と文字はより厳密に区別され、さらに正確な得点を上げることができます。それでも誤読が発生する場合は、登録フォントを開き、2 つの混同する可能性のある文字を調べます。それらの文字がうまく登録されていない可能性があります。
- 常に同じ位置にスペースが入っているテキスト文字列を読み取っている場合は、フィールド文字列にスペースを追加します。
ReadTextの入力パラメータ
Syntax:ReadText(画像,フィクスチャ.行,フィクスチャ.列,フィクスチャ.角度,領域.X,領域.Y,領域.高さ,領域.幅,領域.角度,領域.カーブ,フォント,フィールド文字列,フィールド定義,アクセプトしきい値,得点差しきい値,チューン,照合モード,疑字背景,スケール許容,タイムアウト,表示)
画像 | このパラメータは有効な画像データ構造体を含んでいるスプレッドシートのセルを参照している必要があります。デフォルトで参照されるセルは A0 で、このセルに AcquireImage 関数によって返される 画像データ構造体が含まれています。 | ||||||||||||||||||||||||
フィクスチャ |
入力領域を定義する画像座標系を指定します。
|
||||||||||||||||||||||||
領域 |
移動および回転可能な矩形の画像領域を指定します。
|
||||||||||||||||||||||||
フォント | 登録フォントを含むフォントデータ構造体へのセル参照。 | ||||||||||||||||||||||||
フィールド文字列 |
文字列に含まれる文字数を指定します。フィールド文字列エントリには、(A~Z)、(a~z)、(0~9)、ハイフン(-)、ドット(.)、スペース( )など、[テキスト入力] ダイアログのすべての文字を使用できます。 フィールド文字列の各文字は、0 ~ 31 のインデックス付きフィールド位置に対応します。フィールド文字列には、読み取りを成功させたい文字列の文字と同じ数の位置が含まれている必要があります。デフォルトでは、フィールド文字列の各位置は、アスタリスク(*)か英数字の「ワイルドカード」で示されます。これは、文字列のどの位置でもすべての文字が有効であることを意味します。 ただし、フィールド文字列の個別の位置は、その位置に一部の文字しか想定されないように制限することができます。すると、対象外の文字は読み取り時に考慮されないため、全体的な性能と信頼性が向上します。 定義済みのフィールド文字列エントリは、次のとおりです。
注 :
|
||||||||||||||||||||||||
フィールド定義 |
必要に応じ、[フィールド定義] 設定を使用して [フィールド文字列] のユーザ定義エントリを作成できます。このエントリがフィールド文字列に含まれると、このエントリの挿入位置で有効となる文字のリストが限定されます。 セミコロン(;)で区切ることによって、複数のフィールド定義を使用できます。 フィールド定義エントリのために示す文字は、フォントに含まれている必要があります。次に例を示します。#=123 は、ユーザ登録フォントに 1、2、3 が含まれる場合に有効です。ただし、#=123 は、フォントに 1、2、3 が含まれない場合は無効です。 注 : 定義済みのエントリ (*, A, a, N, H, h, O) をフィールド定義パラメータで使用すると、新しい定義で有効な文字のリストが再割り当てされます。
|
||||||||||||||||||||||||
アクセプトしきい値 | 各文字の許容できる最低一致得点 (0 ~ 100、デフォルト = 70) を指定します。ReadText 関数はアクセプトしきい値未満の一致得点の文字を不合格とし、その文字列を不合格とします。 | ||||||||||||||||||||||||
得点差しきい値 |
最高得点の文字と 2 番目の得点の文字の一致得点の間に必要な最小差(0~20、デフォルト = 0)。 2 番目に高い得点の文字を調べるには、次を使用してください。GetChar(テキスト, インデックス, 1) 2 番目に高い得点の文字の得点を調べるには、次を使用してください。GetScore(テキスト, インデックス, 1) |
||||||||||||||||||||||||
チューン |
参照されている データ構造体の文字モデルのスケールを 50 ~ 200% で調整します。一致得点は、文字モデルのサイズを読み取る文字のサイズに可能な限り近づけることによって最大になります。チューンは、文字モデルのサイズと読み取る文字のサイズの差が ±5% を超える場合にのみ実行してください。 チューンは大きな処理時間を必要とするため、1 回だけ実行するようにします。一度、チューンを ON にしてジョブを実行したら、後のジョブの処理時間を短縮するためにスプレッドシートを開いてチューンを OFF にしてください。
|
||||||||||||||||||||||||
照合モード |
読み取り精度を向上させるために、高度なアルゴリズムを使用するかどうかを指定します。 注 : 背景の状態によっては [高精度] よりも [高速] を選択したときに良好な結果を得られることがあります。アプリケーションに応じて選択してください。
ヒント : [高精度] を選択している場合は、得点が低く抑えられる傾向があるため、アクセプトしきい値を小さめに設定する必要があります。
|
||||||||||||||||||||||||
疑字背景 |
画像内のそのほかの特徴が、テキスト文字列と区別しづらい場合に指定します。この設定は、画像内のそのほかの特徴が誤って文字列の先頭と認識される場合には特に有効です。
|
||||||||||||||||||||||||
スケール許容 |
文字サイズの小さなばらつきを補正するため ± 10% の許容値を指定します。
|
||||||||||||||||||||||||
タイムアウト | 関数が有効なテキスト文字列を検索する時間をミリ秒単位で指定します (0 ~ 30000)。この時間が経過すると、処理は中止され、#ERR が返されます。値を 0 に設定すると設定値が無効になり、タイムアウトは適用されません。 | ||||||||||||||||||||||||
表示 |
画像上の ReadText グラフィックスオーバレイの表示モードを指定します。
|
ReadTextの出力
戻り値 | 読み取られた文字列を含んでいるテキストデータ構造体。入力パラメータが無効であれば #ERR を返します。 |
結果 | ReadText 関数をスプレッドシートに配置すると、結果テーブルが自動的に作成されます。 |
ReadTextデータアクセス関数
次のデータアクセス関数がスプレッドシートに自動挿入され、結果テーブルが作成されます。
文字列 | GetString(テキスト) | 参照されているテキストデータ構造体のテキスト文字列を返します。 |
文字列合格 | GetPassed(テキスト) | 参照されているテキストデータ構造体の文字列全体の合格/不合格ステータスを返します。 |
文字 | GetChar(テキスト, インデックス 0, [インデックス 1]) | 参照されているテキストデータ構造体のインデックス付き文字を返します。オプションの「インデックス 1」パラメータが 1 の場合は、2 番目に高い得点の文字を返します。 |
得点 | GetScore(テキスト, インデックス 0, [インデックス 1]) | 参照されているテキストデータ構造体のインデックス付き文字の一致得点 (0~100) を返します。オプションの「インデックス 1」パラメータが 1 の場合は、2 番目に高い得点の文字の得点を返します。 |
合格 | GetPassed(テキスト, インデックス) | 参照されているテキストデータ構造体のインデックス付き文字の合格/不合格ステータスを返します。[インデックス] パラメータが指定されていない場合は、文字列全体の合格/不合格ステータスを返します。 |
テキストデータアクセス関数を使用して、次のデータ要素を取得できます。
角度 | GetAngle(テキスト) | テキストデータ構造体のテキスト文字列と 画像データ構造体の水平軸の間の角度を返します。 |
列 | GetCol(テキスト, インデックス) | 参照されているテキストデータ構造体のインデックス付き文字の列座標 (ピクセル単位) を返します。 |
高さ | GetHigh(テキスト, インデックス) | 参照されているテキストデータ構造体のインデックス付き文字の高さ (ピクセル単位) を返します。 |
行 | GetRow(テキスト, インデックス) | 参照されているテキストデータ構造体のインデックス付き文字の行座標 (ピクセル単位) を返します。 |
幅 | GetWide(テキスト, インデックス) | 参照されているテキストデータ構造体のインデックス付き文字の幅 (ピクセル単位) を返します。 |