ReadText

ユーザ登録フォントの文字モデルを使用して画像領域内のテキスト文字列を読み取ります。

:  
  • TrainFontReadTextVerifyText の各関数は、In-Sight ファームウェア 4.x.x を搭載した In-Sight ビジョンシステムのみで使用可能です。In-Sight ファームウェア 5.1.0 以上を実行している In-Sight ビジョンシステムでは使用できません。モデル一覧およびサポートされているファームウェアバージョンについては、「ファームウェアバージョン」を参照してください。
  • レガシー関数である ReadTextTrainFont および VerifyText 関数の代わりに、OCRMax 関数を使用することを推奨します。OCRMax 関数には拡張性能機能が搭載されています。
ヒント :  
  • テキスト文字列がすでにわかっている場合は、常に VerifyText 関数を使用します。テキスト文字列の読み取りがより速く、より正確に行われるようになります。
  • スピードの要求されないアプリケーションでは、スケール許容を ON にしてください。文字サイズのわずかな変化のために検出精度が大きく低下するのを防ぐことができます。
  • 文字列でない場所を誤って検出した場合、または、文字列がどこにも検出されなかった場合は、疑字背景を ON にして、再試行します。
  • 文字認識中に誤読が発生した場合は、読み取りモードを [高速] から [高精度] に切り替えます。[高精度] を選択した場合、文字と文字はより厳密に区別され、さらに正確な得点を上げることができます。それでも誤読が発生する場合は、登録フォントを開き、2 つの混同する可能性のある文字を調べます。それらの文字がうまく登録されていない可能性があります。
  • 常に同じ位置にスペースが入っているテキスト文字列を読み取っている場合は、フィールド文字列にスペースを追加します。

ReadTextの入力パラメータ

Syntax:ReadText(画像,フィクスチャ.行,フィクスチャ.列,フィクスチャ.角度,領域.X,領域.Y,領域.高さ,領域.幅,領域.角度,領域.カーブ,フォント,フィールド文字列,フィールド定義,アクセプトしきい値,得点差しきい値,チューン,照合モード,疑字背景,スケール許容,タイムアウト,表示)

画像 このパラメータは有効な画像データ構造体を含んでいるスプレッドシートのセルを参照している必要があります。デフォルトで参照されるセルは A0 で、このセルに AcquireImage 関数によって返される 画像データ構造体が含まれています。
フィクスチャ

入力領域を定義する画像座標系を指定します。

行オフセット
列オフセット
角度 角度
領域

移動および回転可能な矩形の画像領域を指定します。

X フィクスチャ座標での原点の X オフセット。
Y フィクスチャ座標での原点の Y オフセット。
高さ 領域の X 軸に沿った寸法。
領域の Y 軸に沿った寸法。
角度 フィクスチャ座標での角度。
カーブ 領域の X 軸と反対側の境界線との間の角度変位。
フォント 登録フォントを含むフォントデータ構造体へのセル参照。
フィールド文字列

文字列に含まれる文字数を指定します。フィールド文字列エントリには、(A~Z)(a~z)(0~9)、ハイフン(-)、ドット(.)、スペース( )など、[テキスト入力] ダイアログのすべての文字を使用できます。

フィールド文字列の各文字は、0 ~ 31 のインデックス付きフィールド位置に対応します。フィールド文字列には、読み取りを成功させたい文字列の文字と同じ数の位置が含まれている必要があります。デフォルトでは、フィールド文字列の各位置は、アスタリスク(*)か英数字の「ワイルドカード」で示されます。これは、文字列のどの位置でもすべての文字が有効であることを意味します。

ただし、フィールド文字列の個別の位置は、その位置に一部の文字しか想定されないように制限することができます。すると、対象外の文字は読み取り時に考慮されないため、全体的な性能と信頼性が向上します。

定義済みのフィールド文字列エントリは、次のとおりです。

フィールド文字列

エントリ

説明 有効な文字
* ワイルドカード フォントに含まれる任意の登録文字です。
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 が返されます。

フィールド定義

必要に応じ、[フィールド定義] 設定を使用して [フィールド文字列] のユーザ定義エントリを作成できます。このエントリがフィールド文字列に含まれると、このエントリの挿入位置で有効となる文字のリストが限定されます。

セミコロン(;)で区切ることによって、複数のフィールド定義を使用できます。

フィールド定義エントリのために示す文字は、フォントに含まれている必要があります。次に例を示します。#=123 は、ユーザ登録フォントに 1、2、3 が含まれる場合に有効です。ただし、#=123 は、フォントに 1、2、3 が含まれない場合は無効です。

:  定義済みのエントリ (*, A, a, N, H, h, O) をフィールド定義パラメータで使用すると、新しい定義で有効な文字のリストが再割り当てされます。

閉じたフィールド定義の例 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 だけが想定されています。

アクセプトしきい値 各文字の許容できる最低一致得点 (0 ~ 100、デフォルト = 70) を指定します。ReadText 関数はアクセプトしきい値未満の一致得点の文字を不合格とし、その文字列を不合格とします。
得点差しきい値

最高得点の文字と 2 番目の得点の文字の一致得点の間に必要な最小差(0~20、デフォルト = 0)

2 番目に高い得点の文字を調べるには、次を使用してください。GetChar(テキスト, インデックス, 1)

2 番目に高い得点の文字の得点を調べるには、次を使用してください。GetScore(テキスト, インデックス, 1)

チューン

参照されている データ構造体の文字モデルのスケールを 50 ~ 200% で調整します。一致得点は、文字モデルのサイズを読み取る文字のサイズに可能な限り近づけることによって最大になります。チューンは、文字モデルのサイズと読み取る文字のサイズの差が ±5% を超える場合にのみ実行してください。

チューンは大きな処理時間を必要とするため、1 回だけ実行するようにします。一度、チューンを ON にしてジョブを実行したら、後のジョブの処理時間を短縮するためにスプレッドシートを開いてチューンを OFF にしてください。

0 = OFF (デフォルト)

スケールの調整を行いません。

1 = ON

一致得点が最大になるように、文字モデルのスケールを調整します。

照合モード

読み取り精度を向上させるために、高度なアルゴリズムを使用するかどうかを指定します。

:  背景の状態によっては [高精度] よりも [高速] を選択したときに良好な結果を得られることがあります。アプリケーションに応じて選択してください。
ヒント :  [高精度] を選択している場合は、得点が低く抑えられる傾向があるため、アクセプトしきい値を小さめに設定する必要があります。
0 = 高速(デフォルト) 高度なアルゴリズムを使用しません。このアルゴリズムを使用する場合、デコード速度は向上する可能性がありますが、精度が劣る可能性があります。
1 = 高精度 高度なアルゴリズムを使用してデコードを行います。このアルゴリズムは、精度がより高くなっていますが、デコード速度は低下する可能性があります。
疑字背景

画像内のそのほかの特徴が、テキスト文字列と区別しづらい場合に指定します。この設定は、画像内のそのほかの特徴が誤って文字列の先頭と認識される場合には特に有効です。

0 = OFF (デフォルト) 画像内にテキスト文字列と区別しづらい特徴が含まれない場合に指定します。
1 = ON 画像内にテキスト文字列と区別しづらい特徴が含まれている場合に指定します。
スケール許容

文字サイズの小さなばらつきを補正するため ± 10% の許容値を指定します。

0 = OFF (デフォルト) 文字スケールの小さなばらつきを認めません。
1 = ON 文字スケールの小さなばらつきを認めます。
タイムアウト 関数が有効なテキスト文字列を検索する時間をミリ秒単位で指定します (0 ~ 30000)。この時間が経過すると、処理は中止され、#ERR が返されます。値を 0 に設定すると設定値が無効になり、タイムアウトは適用されません。
表示

画像上の ReadText グラフィックスオーバレイの表示モードを指定します。

0 = 非表示 (デフォルト) ReadText 関数を含んでいるセルがスプレッドシート内でハイライトされている場合を除き、すべてのグラフィックスが表示されません。
1 = 結果のグラフィックスのみ 文字セグメントおよび対応するラベルが常に表示されます。
2 = 入力と結果のグラフィックス 画像領域と文字セグメントおよび対応するラベルが常に表示されます。

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(テキスト, インデックス) 参照されているテキストデータ構造体のインデックス付き文字の幅 (ピクセル単位) を返します。