OCRMax

ユーザ定義の文字フォントが登録された後に、対象領域 (ROI) 内のテキスト文字列の読み取りおよび照合を行うか、またはそのどちらかを実行します。

概要

OCRMax 関数は、セグメンテーションと分類のプロセスを通じて光学式文字認識 (OCR) を実行します。セグメンテーションは、最初に実行され、しきい値技術を使用してテキスト行を含むとみなされる画像内の領域を特定します。テキストを文字にセグメンテーションした後、文字を登録し、フォントデータベースとして格納します。分類は、実行時に行われ、関数がセグメンテーションを実行した後に、検出されたテキストの「読み取り」を担います。そして、セグメンテーションされた文字の画像と登録された文字のフォントを比較することで識別されます。

セグメンテーションプロセスでは、OCRMax 関数が ROI 内のテキスト行の位置を判別し、テキストの角度、傾き、および極性を計算します。その後、領域を正規化し、不要なノイズを除去してから、前景ピクセルと背景ピクセルに 2 値化します。2 値化画像内でブロブ解析を実行し、文字フラグメントを生成します。各文字フラグメントが単一のブロブを表します。文字フラグメントをグループ化して文字を形成し、その文字に文字領域を割り当てます。文字領域は、ROI 内の前景 (インクなど) ピクセルすべてを無駄なく囲んだ編集不可のバウンディングボックスです。

ROI 内のテキスト行は、個々の文字の画像に分割され、各文字は編集不可の文字矩形で囲まれます。ROI は、テキスト行のおよその位置、角度、傾きを定義します。必要に応じて、[セグメント] タブの [角度範囲] および [スキュー範囲] パラメータを使用して、偏差を補正できます。

OCRMaxの入力パラメータ

オートチューン: [オートチューン] ダイアログを起動して、自動的に最適な [セグメント] パラメータを計算し、フォントデータベースを登録します。[オートチューン] ダイアログの実行中に 1 つまたは複数の画像をロードすると、各画像が検査され、文字が正しくセグメント化および分類されていることが確認されます。文字が正しくセグメント化されていない場合、OCRMax 関数のオートチューンアルゴリズムは、現在の画像および以前に登録した画像をセグメント化する最適な [セグメント] パラメータを計算します。画像の登録数が増えるほど、OCRMax 関数のオートチューンアルゴリズムの信頼性と正確性が向上します。満足な結果が得られたら、[オートチューン] ダイアログを閉じ、新しい [セグメンテーション] パラメータを適用します。フォントデータベースは新たに登録された文字で更新されます。

[オートチューン] ダイアログには、[セグメンテーション] パラメータを手動でチューニングする場合に比べて、主に 2 つの利点があります。 

  • 画像に必要なサイクルは、2 回 (1 回目に [セグメンテーション] をチューニングし、2 回目に登録する) ではなく、1 回だけです。
  • 読み取り精度は、チューニングプロセス中に取得される [セグメンテーション] パラメータによって文字が自動的に登録されることによって向上します。
:  OCRMaxAutoTune 関数を使用することにより、VisionView オペレータインタフェースパネルなどの外部デバイスを使用して、[オートチューン] ダイアログに外部からアクセスすることができます。

[全般] タブ

Syntax:OCRMax(画像,フィクスチャ.行,フィクスチャ.列,フィクスチャ.角度,領域.X,領域.Y,領域.高さ,領域.幅,領域.角度,領域.カーブ,フォント,外部設定,登録モード,フォントの登録,フォントをクリア,検査モード,マッチ文字列,フィールド文字列,フィールド定義,スペース.スペースの検出,スペース.スペース得点モード,スペース.スペース最小幅,スペース.スペース最大幅,アクセプトしきい値,コンフュージョンしきい値,サブサンプリングの使用,タイムアウト,出力画像グラフィックス,文字ラベル位置,診断の表示,カーブ領域位置,リセット,表示)

画像

画像データ構造体を含んだスプレッドシートセルを参照するように指定します。デフォルトでは、このパラメータは、AcquireImage 画像データ構造体を含むセル A0 を参照しています。また、このパラメータは、ビジョンツールのグラフィックス関数や、座標補正関数により返された、そのほかの画像データ構造体も参照できます。

フィクスチャ

フィクスチャ入力、またはビジョンツール関数の画像座標系の出力に関連する対象領域 (ROI) を定義します。フィクスチャに関連する ROI を設定すると、フィクスチャが回転または移動した場合に、フィクスチャに対応して ROI を確実に回転または移動できます。

デフォルト設定は画像の左上隅で、(0, 0, 0) になります。

行 (デフォルト = 0) 画像座標での行オフセット。
列 (デフォルト = 0) 画像座標での列オフセット
角度 (デフォルト = 0) 画像座標系での方位角

領域

これは対象領域 (ROI) とも呼ばれ、解析の対象となる画像の領域を表します。変換および回転可能な矩形の画像領域を作成します。このパラメータを選択して、プロパティシートのツールバーにある [領域の最大化] ボタンを押すと、画像全体が対象になるように領域が自動的に拡張されます。

ROI の X 軸はテキストのベースラインと平行となり、Y 軸は文字の垂直ストロークと平行になります。傾きがない場合は、Y 軸は X 軸に垂直になります。X 軸の正の方向が読み取り方向に対応します。

:  
  • ROI がほぼ同じ角度で設定されるため、画像内のテキストのベースラインは任意の角度 (0 ~ 360) にすることができます。ROI は、1 行のみの読み取り対象のテキストと周囲の背景を含みます。背景は、ノイズが入っていたり、大きな勾配や影付きの場合もあります。鮮明に印刷されノイズのほとんどないテキストを持つ画像では、ROI はテキスト行より大幅に大きくなることがあります。ノイズの多い画像では、ROI は比較的テキスト行の外郭に近くなります。

  • ROI にテキスト行以外の画像内の他の重要な特徴を含めないでください。例えば、ROI にテキスト近くの別の行やラベルのエッジが部分的に含まれることがないようにします。

経験則として、可能な場合、ROI はすべての側でテキスト行より文字幅の半分以上大きくします (ROI に他の特徴が含まれてしまう大きさにならない限り)。

X フィクスチャ座標での原点の X オフセット
Y フィクスチャ座標での原点の Y オフセット
高さ 領域の X 軸に沿った寸法。
領域の Y 軸に沿った寸法。
角度 フィクスチャ座標での角度。
カーブ 領域の X 軸と反対側の境界線との間の角度変位。

フォント

必要に応じて、別の OCRMax 関数によって出力され、登録フォントを含むデータ構造体へのセル参照を指定します。

:  参照が設定されており、登録フォントを参照する関数内で登録文字を編集する場合、登録文字への変更は、[取り消し] ボタンを押しても取り消されません。

外部設定

必要に応じて、OCRMaxSettings または GetInternalSettings 関数によって出力されたデータ構造体へのセル参照を指定します。[セルにエクスポート] オプションを使用している場合、このパラメータは新しく作成した OCRMaxSettings 関数の設定データ構造体への絶対セル参照として自動的に設定されます。

:  
  • このパラメータが OCRMaxSettings 関数への参照として設定されている場合、[セグメント] パラメータは無効になります (パラメータを有効なままにする場合は、GetInternalSettings 関数を使用します)。[セグメント] パラメータを再び有効にするには、このパラメータを 0 に設定します。
  • このパラメータが OCRMaxSettings 関数または GetInternalSettings 関数への参照として設定されている場合、[オートチューン] ダイアログは使用できません ([オートチューン] ダイアログを有効にするには、このパラメータを 0 に設定する必要があります)。GetInternalSettings 関数との関連で [オートチューン] ダイアログを有効にする方法については、「GetInternalSettings」関数を参照してください。

登録モード

フォントの登録方法を指定します。

0 = すべての文字をフォントに追加 [フォントの登録] パラメータがアクティブな場合は、ROI 内のすべての文字がフォントに追加されます。
1 = 新しい文字をフォントに追加 (デフォルト) [フォントの登録] パラメータがアクティブな場合は、ROI 内の新しい文字のみがフォントに追加されます。
2 = フォント内の登録済み文字を置き換え [フォントの登録] パラメータがアクティブな場合は、すべての登録文字を現在の ROI 内の文字で置換します。
3 = すべてのフォントを置き換え [フォントの登録] パラメータがアクティブな場合は、フォント内のすべての文字を現在の ROI 内の文字で置換します。

登録文字列

登録するテキスト文字列を指定します。

:  OCRMax 関数は ASCII 文字の登録のみをサポートしています。

フォントの登録

[登録モード] パラメータの設定に基づいて、文字を登録するためのイベントを指定します。

フォントをクリア

フォント内のすべての文字を削除するためのイベントを指定します。

:  [フォントの登録] および [フォントをクリア] パラメータは、フォント内のすべての文字の削除を開始するイベントと同じイベントを参照し、ROI 内の現在の文字に基づいて再登録することができます。

検査モード

実行時の関数の検査モードを指定します。

読み取り (デフォルト) 関数は、文字の登録インスタンスに基づいて、ROI 内の文字の読み取りを試みます。
読み取りと照合 関数は、最初に文字の登録インスタンスに基づいて ROI 内の文字を読み取り、その後、[マッチ文字列] パラメータに指定されたテキスト文字列と読み取った文字を照合して検証を試みます。

マッチ文字列

認識と照合検査モード時に、正確に一致する必要のあるテキスト文字列を指定します。

フィールド文字列

文字列に含まれる文字数を指定します。[フィールド化] を使用して、文字列のさまざまな位置にあると予測される文字に関する情報を提供します。[フィールド化] タブのコントロールを使用して、フィールド文字列とフィールド定義を作成します (必要な場合)。

:  このパラメータは、[検査モード] パラメータが [読み取り] に設定されている場合のみ使用可能です。

フィールド定義

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

:  このパラメータは、[検査モード] パラメータが [読み取り] に設定されている場合のみ使用可能です。

スペース

必要な場合に、関数が文字間のスペースを考慮する方法を指定します。OCRMax 関数は、文字間のギャップをスペース文字として分類することで処理します。これらはユーザによって定義されます。

スペースの検出

関数が、他の文字間のギャップへのスペース文字の挿入をどのように処理するかを指定します。

0 = なし (デフォルト) 関数は、文字間のギャップの大きさに関係なく、スペース文字を挿入しません。
1 = シングルスペースの挿入 関数は、文字間のギャップの大きさに関係なく、文字間のギャップごとにシングルスペース文字を挿入します。
2 = 複数スペースの挿入 関数は、文字間のギャップごとに x 個 (0 以上) のスペース文字を挿入します。
スペース得点モード

関数がスペース文字の得点を計算する方法を指定します。

0 = 常に 100 を得点 (デフォルト) スペース文字の得点は常に 100 になります。
1 = クラッタを基に得点 スペース文字の得点は、背景となっているピクセルの割合に基づきます。完全に背景ピクセルを構成するスペース文字の得点は 100 になります。
スペース最小幅 スペース文字の最小幅をピクセル単位で指定します (0 ~ 1000、デフォルト = 10)
スペース最大幅 スペース文字の最大幅をピクセル単位で指定します (0 ~ 1000、デフォルト = 100)

アクセプトしきい値

各文字の許容できる最低一致得点(0~100、デフォルト = 80)を指定します。[アクセプトしきい値] を下回る一致得点の文字は拒否されます。

コンフュージョンしきい値

最高得点の文字と 2 番目である得点の文字の一致得点の間に必要な最小差を指定します (0 ~ 40、デフォルト = 0)

サブサンプリングの使用

画像のサブサンプリングを有効にするかどうかを指定します。有効にすると、文字解像度が低下し関数の読み取り速度が向上します。

0 = OFF (デフォルト) この関数がサブサンプリングを実行しないように指定します。
1 = ON この関数がサブサンプリングを実行するように指定します。

タイムアウト

この関数による文字のサーチ時間をミリ秒単位で指定します (0 ~ 30000、デフォルト = 5000)。指定された時間が経過すると、実行は停止し、#ERR が返されます。値を 0 に設定すると設定値が無効になり、タイムアウトは適用されません。

出力画像グラフィックス

表示する出力画像の種類を指定します。

0 = 入力画像 (デフォルト) 入力画像が表示されます。
1 = 正規化された画像 正規化された画像が表示されます。
2 = 2 値化された画像 2 値化された画像が表示されます。

文字ラベル位置

文字領域に対する各文字のラベルを表示する相対位置を指定します。

0 = 文字の上 (デフォルト) 各文字ラベルは文字領域の上に表示されます。
1 = 文字の右 各文字ラベルは文字領域の右側に表示されます。
2 = 文字の下 各文字ラベルは文字領域の下に表示されます。
3 = 文字の左 各文字ラベルは文字領域の左側に表示されます。

診断の表示

画像に表示するグラフィックス診断データのタイプを指定します。

0 = 非表示 (デフォルト) OCRMax 関数を含んでいるセルがスプレッドシート内でハイライトされている場合を除き、すべてのグラフィックス診断データが表示されません。
1 = 不合格文字のみ表示

不合格になった文字の周囲領域が赤色で描画され、テキストのメインラインは青色の矩形で囲まれます。

2 = 保存されたフラグメントのみ表示

保存されたフラグメントの周囲領域がシアンで描画され、テキストのメインラインは青色の矩形で囲まれます。

3 = 不合格フラグメントのみ表示

不合格になったフラグメントの周囲領域が黄色で描画され、テキストのメインラインは青色の矩形で囲まれます。

4 = すべて表示 保存された文字 (緑)、不合格文字 (赤)、保存されたフラグメント (シアン)、不合格フラグメント (黄)、テキストのメインライン (青)、およびテキストの拡張メインライン (マゼンタ) の周囲領域が描画されます。

カーブ領域位置

カーブ領域を使用する場合、歪みのない領域の画像上の位置を X 座標と Y 座標で指定します。

:  このパラメータは [領域] パラメータのカーブ値が 0 より大きい場合のみ有効です。
X 領域を配置する位置の X 座標を指定します。
Y 領域を配置する位置の Y 座標を指定します。

リセット

[セグメント] タブのパラメータがデフォルト設定にリセットされ、フォント情報がクリアされ、この関数に関連するオートチューンレコード (.rec) ファイルが削除されるように指定します。

:  [外部設定] パラメータが GetInternalSettings 関数または OCRMaxSettings 関数への参照として設定されている場合、このボタンは無効になります。

表示

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

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

[セグメント] タブ

[セグメント] タブを使用して、ROI 内の文字をセグメンテーションする設定を調整および変更できます。通常は、デフォルト値とデフォルト設定で大半の文字は読み取れます。ただし、比較的困難な場合には、一部のパラメータ値を調整する必要が生じることがあります。このような場合は、最小文字幅、最大幅や最小ピッチ (文字間の距離。例えば、1 つの文字の左端からその次の文字の左端まで) を指定すると、通常は問題が解決します。

:  
  • このタブのパラメータは、外部セルから参照することはできません。セル参照が必要な場合は、[外部設定] パラメータが OCRMaxSettings 関数を参照するように設定します。
  • [外部設定] パラメータが OCRMaxSettings 関数を参照するように設定されている場合、[セグメント] タブ内のコントロールは無効になります。
  • [セグメント] タブ内では、ROI を調整でき ([グラフィックスの編集] ボタンが有効)、ROI が変更されるとセグメンテーショングラフィックス (文字矩形) が更新されます。
  • ROI と文字領域を表示した場合に、文字領域の線がスプレッドシートオーバレイによって部分的に非表示になることがあります。[セグメント] パラメータの調整時に、半透明のスプレッドシートオーバレイを非表示にすると、文字領域の部分的な遮蔽を防ぐことができます。

セグメンテーションのガイドライン

  • 背景に強度なテクスチャまたは大量のノイズ、あるいはその両方が含まれ、その背景に文字が混在している画像は、セグメンテーションが困難です。
  • ROI には、読み取る文字のみを含め、他の文字やラベルエッジなどの無関係な強い特徴は含めないようにします。
  • 2 つの文字が接触している場合は、通常、パラメータを調整する必要があります。固定幅の接触文字は文字幅を指定することで補正できますが、接触文字のプロポーショナルフォントが問題となり、関数が正しく処理できる場合とできない場合があります。
  • 短いテキスト行 (例えば、3 文字以下) または線ジッタの多い比較的短い行の場合、予測される [角度範囲] を指定すると、関数が固有の不確定度を適切に補正し、短いテキスト行の向きを決定できます。
  • 1 行の中のすべての文字が同一の向きと傾きを持っている必要があります。
  • 十分に分離されたドットマトリックスプリント (ドットが接触していない) の場合、文字を適切にセグメンテーションするには、[最小文字フラグメントサイズ] などのパラメータを調整する必要が生じることがあります。
  • 文字ストローク幅は 2 ピクセル以上にする必要があります。
  • 大きな文字 (通常、英数字) の最小文字サイズは 8 × 8 ピクセルです。小さい文字 (ピリオドなど) の最小文字サイズは 2 × 2 ピクセルです。
ヒント :  [出力画像グラフィックス] パラメータを使用すると、[セグメント] パラメータを調整しながら、正規化またはバイナリ化された文字画像を表示できます (画像が鮮明に表示されるように OCRMax プロパティシートを位置づけます)。正規化された画像および 2 値化された画像は、問題を把握し修正するための有用な診断ツールとなります。
セルにエクスポート 現在の [セグメント] タブのパラメータがスプレッドシート内のセルに OCRMaxSettings 関数としてエクスポートされるように指定します。使用する場合、[セグメント] パラメータは読み取り専用となり、[外部設定] パラメータは新しく作成した OCRMaxSettings 関数への参照として設定されます。[セグメント] パラメータを再び有効にするには、[外部設定] パラメータを 0 に設定して OCRMaxSettings 関数への参照を取り消します。
リセット

[セグメント] タブのパラメータがデフォルト設定にリセットされ、フォント情報がクリアされ、この関数に関連するオートチューンレコード (.rec) ファイルが削除されるように指定します。

:  [外部設定] パラメータが GetInternalSettings 関数または OCRMaxSettings 関数への参照として設定されている場合、このボタンは無効になります。
セグメントパラメータ

セグメント分割の実行に使用されるパラメータ設定を指定します。

文字の極性

入力画像内の文字の極性を指定します。

:  関数のパフォーマンスを改善するには、テキストの極性を指定します。
1 = 黒 (白い背景) テキストの極性は、白い背景に黒い文字です。
2 = 白 (黒い背景) テキストの極性は、黒い背景に白い文字です。
4 = 自動 (デフォルト) この関数は、テキストと背景の極性を自動的に決定します。
文字幅のタイプ

フォントの文字幅の変動方法を指定します。これにより、文字フラグメントをマージするか、分割するかが決定されます。

:  文字幅は文字領域 (例: インクの境界ボックス) の幅です。ROI ではありません (ROI には通常、文字矩形のまわりのパディングも含まれます)。
1 = 自動 (デフォルト) 文字の幅は不明です。このフォントの幅は固定、またはプロポーショナルである可能性があります。指定した最大文字幅よりも広い文字フラグメントは、関数によって決定された文字フラグメントの分割に最適な位置に基づき、個々の文字に分割されます。各文字の幅が同じになるとは限りません。
2 = 固定 フォントの文字領域はすべて同じ幅をしています。指定した最大文字幅よりも広い文字フラグメントは、個々の文字に分割されます。各文字の幅は同じになります。
4 = 可変 フォントの文字の文字領域の幅は一定ではない可能性があります。指定した最大文字幅よりも広い文字フラグメントは、関数によって決定された文字フラグメントの分割に最適な位置に基づき、個々の文字に分割されます。各文字の幅が同じになるとは限りません。
文字幅の最小値

文字領域の最小の幅をピクセル単位で指定します (1 ~ 1000、デフォルト = 3)。この値以上の幅を持つ文字がレポートの対象となります。この設定によって、背景ノイズまたはそのほかのテキスト以外の特徴をフィルタ処理することができます。

:  読み取るフォントに小さなテキストの特徴 (つまり、ピリオド、コロン、ハイフンなど) が含まれる場合、最小値を高くしすぎると本物の文字まで破棄されてしまう可能性があり、背景ノイズを判別する機能が制限されることがあります。

文字幅の最大値を使用

文字幅の最大値を制限するかどうかを指定します。この設定は、文字フラグメントを分割するか、マージするかを決定する場合に有効です。文字フラグメントを分割する必要がある場合は、[文字幅のタイプ] パラメータで使用する適切な方法を決定します。

0 = OFF (デフォルト) この関数は、文字の文字領域の幅について、許容される最大値を考慮しません。
1 = ON この関数は、文字領域の幅について、許容される最大値を考慮します。有効な場合、指定された値よりも広い幅を持つ文字は、幅が広すぎないように、いくつかに分割されます。
文字幅の最大値

文字の文字領域について、許容される最大の幅をピクセル単位で指定します (1 ~ 5000、デフォルト = 100)

:  この設定は、[文字幅の最大値を使用] パラメータが有効化されている場合のみ使用可能です。
文字の高さの最小値

文字領域の最小の高さをピクセル単位で指定します (1 ~ 1000、デフォルト = 3)。この値以上の高さを持つ文字がレポートの対象となります。この設定によって、背景ノイズまたはそのほかのテキスト以外の特徴をフィルタ処理することができます。

:  読み取るフォントに小さなテキストの特徴 (つまり、ピリオド、コロン、ハイフンなど) が含まれる場合、最小値を高くしすぎると本物の文字まで破棄されてしまう可能性があり、背景ノイズを判別する機能が制限されることがあります。

文字の高さの最大値を使用

この関数で、文字の高さの最大値を有効にするかどうかを指定します。この値の使い方には 2 通りあります。この値は、まず、垂直方向に隣り合うノイズや文字が縦に並んだ行を拒否するなどのために行全体を検出するときに使用します。また、この値を上回る高さを持つ文字は、この高さに合わせてトリミングされます。

0 = OFF (デフォルト) 文字の高さの最大値を考慮しません。
1 = ON 文字の高さの最大値を考慮します。
文字の高さの最大値

文字の文字領域について、許容される最大の高さをピクセル単位で指定します (1 ~ 5000、デフォルト = 100)

:  この設定は、[文字の高さの最大値を使用] パラメータが有効化されている場合のみ使用可能です。
最小文字アスペクト比を使用

文字のアスペクト比の最小許容可能値を考慮に入れるかどうかを指定します。アスペクト比は、文字列全体の高さ/文字列を囲む矩形の幅です。

0 = OFF 文字のアスペクト比の最小許容可能値を考慮に入れません。
1 = ON (デフォルト) 文字のアスペクト比の最小許容可能値を考慮に入れます。アスペクト比がこの値よりも小さい (幅が広すぎる) 文字は、複数のセグメントに分割されます。
最小文字アスペクト比

1 文字につき許容できる最小アスペクト比 (0 ~ 500、デフォルト = 80) を指定します。この設定値は、文字の行の高さ全体を使用した最大文字幅を間接的に設定する際に使用することができます。この最大幅は、行の高さを [最小文字アスペクト比] の値で割った値と同じになります。このパラメータで許可される幅よりも広い文字フラグメントはマージされず、分割されて、複数のフラグメントを形成します。この文字フラグメントは、幅が広すぎないように [文字幅のタイプ] パラメータによって制御されます。

:  この設定は、[Use Minimum Character Aspect Ratio] パラメータが有効化されている場合のみ使用可能です。
角度範囲

角度のサーチ範囲 (0 ~ 45、デフォルト = 0) を度単位で指定します。

:  テキスト行に角度の回転または傾きがある場合、その角度または傾きが各画像で一定の場合は、[領域] を設定してこれらのばらつきを補正します。0 を超える任意の値を指定すると、セグメントプロセスの処理時間が長くなります。

スキュー範囲

スキューのサーチ範囲 (0 ~ 45、デフォルト = 0) を度単位で指定します。

:  テキスト行に角度の回転または傾きがある場合、その角度または傾きが各画像で一定の場合は、[領域] を設定してこれらのばらつきを補正します。0 を超える任意の値を指定すると、セグメントプロセスの処理時間が長くなります。

文字フラグメントマージモード

分割された文字フラグメントを結合して文字を形成するときのマージ (結合) 方法を指定します。2 つの文字フラグメントを 1 文字の一部としてみなすためにオーバーラップする必要があるかどうか、または、間に水平ギャップのある文字フラグメントを 1 文字の一部としてみなすかどうかを決定します。

1 = 要オーバラップ (デフォルト) 文字フラグメントは、[文字フラグメントの最小オーバーラップ値] パラメータの値を基準にして水平にオーバーラップする必要があります。
2 = 最小文字間ギャップ値に設定 文字の断片と断片の間に水平方向のギャップがある場合、これらの断片がマージされ、文字が形成されることがあります。[最小文字間ギャップ値] パラメータで定義された値未満のギャップを持つ 2 つの断片はマージされます。
4 = 最小文字間ギャップ値/最大文字間ギャップ値に設定 文字の断片と断片の間に水平方向のギャップがある場合、これらの断片がマージされ、文字が形成されることがあります。2 つの断片をマージするかどうかは、[最小文字間ギャップ値] パラメータと [最大文字内ギャップ値] パラメータで定義された値に基づいて判断されます。
文字フラグメントの最小オーバーラップ値 2 つの文字断片が同じ文字の一部とみなされるためには、この文字断片が相互に水平方向にオーバーラップしていなければなりませんが、その最小の割合を指定します (0 ~ 100、デフォルト = 0)。デフォルト値 (0) は 1 ピクセル以上オーバーラップする任意の 2 文字の断片をマージします。これよりも大きい値の場合、文字断片はより多くオーバーラップする必要があります。一部の文字のペアを水平方向に意図的にオーバーラップさせるアプリケーションや (カーニングとも呼ばれます)、最適化段階において回転や傾きを完全に修正できなかった場合は (通常、印刷が一定ではないため)、デフォルト値が必要になります。
最大文字内ギャップ値

損傷している文字であっても、1 つの文字の中で起こり得る水平方向のギャップの最大サイズをピクセル単位で指定します (0 ~ 1000、デフォルト = 5)

:  隣り合う文字間に発生するギャップが損傷した文字内に発生する可能性のあるギャップよりも常に広い、最も一般的なアプリケーションの場合は、[最小文字間ギャップ値] パラメータを [最大文字内ギャップ値] パラメータの値に 1 を足して設定します。例えば、文字の内部に水平ギャップが発生することのない場合は、[最大文字内ギャップ値] パラメータに 0 を設定し、[最小文字間ギャップ値] パラメータに 1 を設定します。

最小文字間ギャップ値

異なる文字に属するために、2 つの文字断片の間に必要な水平方向のギャップの最小サイズをピクセル単位で指定します (0 ~ 1000、デフォルト = 0)。このギャップは、ある文字の文字領域の右端から、その隣の文字の文字領域の左端までの距離です。2 つの断片の間のギャップがこの値よりも小さい場合、これらの断片は同じ文字の一部であるとみなされます。ただし、結合後の文字幅が広くなりすぎる場合は例外です ([文字幅の最大値] または [最小文字アスペクト比] パラメータの指定を参照)。

:  隣り合う文字間に発生するギャップが損傷した文字内に発生する可能性のあるギャップよりも常に広い、最も一般的なアプリケーションの場合は、[最小文字間ギャップ値] パラメータを [最大文字内ギャップ値] パラメータの値に 1 を足して設定します。例えば、文字の内部に水平ギャップが発生することのない場合は、[最大文字内ギャップ値] パラメータに 0 を設定し、[最小文字間ギャップ値] パラメータに 1 を設定します。

最小文字フラグメントサイズ 前景 (つまり、テキスト) ピクセルの最小値を指定します (0 ~ 1000、デフォルト = 15)。前景のピクセル値がこの値を超えていれば、その文字断片は文字の一部であるとみなされます。この値を設定する際は、本物のテキスト断片を保持できるくらい小さい値に設定する必要がありますが、同時に、背景ノイズから小さな断片を除外できるくらい大きくします。ドットマトリックステキストや、ピリオドなどの小さい文字を含むテキストについては、小さい値が必要になります。文字が複数の小さな断片に分割されにくい文字で形成された、途切れのないストロークテキストの場合は、大きい値が必要になります。
文字サイズの最小値

前景 (つまり、テキスト) ピクセルの最小値を指定します (0 ~ 5000、デフォルト = 30)。前景のピクセル値がこの値以上である 2 値化文字がレポートの対象となり、ピクセル値が少ない文字は破棄されます。この設定によって、背景ノイズまたはそのほかのテキスト以外の特徴をフィルタ処理することができます。

:  読み取るフォントに小さなテキストの特徴 (つまり、ピリオド、コロン、ハイフンなど) が含まれる場合、最小値を高くしすぎると本物の文字まで破棄されてしまう可能性があり、背景ノイズを判別する機能が制限されることがあります。
高度なセグメンテーションパラメータ

セグメントプロセスに適用される追加パラメータを指定します。

正規化モード

画像の正規化に使用するモードを指定します。このモードは背景のばらつきを除去し、グレースケールの 256 の値 (0 ~ 255) をすべて使用します。

:  この設定は、登録時と実行時の両方で同じでなければなりません。登録後にこの設定を変更すると、分類で問題が発生する原因となる可能性があります。
1 = なし 正規化は行われません。
2 = グローバル ローカルなばらつきではなく、ROI 全体の情報を使用して、グローバルな正規化が実行されます。このオプションは背景色とテキストが ROI 全体を通して一定であり、高速モードのときに最適に機能します。
4 = ローカル (デフォルト) 画像を正規化するために、ROI 内のローカルな文字領域に関する情報を使用して、ローカルな正規化を実行します。このオプションは背景の勾配を除去します。グローバルモードが機能しない場合に使用する必要があります。
8 = ローカル詳細設定 画像を正規化するために、ROI 内のローカルな文字領域に関する情報を使用して、背景だけではなく、前景のコントラストの調整を含むローカルな正規化を実行します。このオプションは背景の勾配を除去し、一定でないテキストのコントラストを調整します。3 つのオプションのうち、実行時間が最も長くかかります。
ストローク幅フィルタを使用

残りの画像と同じストローク幅を持たないものをすべて、正規化された画像から削除するかどうかを指定します。このオプションは、近くの文字と接続する可能性のある薄い線などのテキスト以外の特徴について、一部の種類を削除することができます。このオプションによって、2 値化しきい値を超えて偽のフラグメントを作成したり、近くの文字と連結したりする可能性のある、低コントラストの背景のばらつきを除去することもできます。ただし、テキストに一定のストローク幅がない場合や、テキストに大きな可変コントラスト (ストロークの一部が非常に薄いなど) がある場合は、このオプションを使用することによって問題が発生することがあります。

:  この設定は、登録時と実行時の両方で同じでなければなりません。登録後にこの設定を変更すると、分類で問題が発生する原因となる可能性があります。
0 = OFF 画像にある残りの断片と同じストローク幅を持たないものをすべて、画像から削除しません。
1 = ON (デフォルト) 画像にある残りの断片と同じストローク幅を持たないものをすべて、画像から削除します。
境界フラグメントを無視

関数が、ROI の境界線に接触する断片をすべて、完全に無視するかどうかを指定します。ラベルのエッジなど、ROI の範囲に含まれる可能性のあるテキスト以外の特徴については、このような断片を無視することが有用です。

:  断片が、文字領域の境界からテキストのメインラインまで伸びている場合、この断片は 1 つの文字とみなされます。このパラメータが有効化されているとき、除外されるテキストのメインラインまで断片が伸びていてはいけません。
0 = OFF (デフォルト) 境界線の断片を無視しません。
1 = ON 境界線の断片を無視します。
2 値化しきい値

正規化された画像において、テキストと背景の間で画像をバイナリ化するしきい値の計算に使用します。単位はパーセンテージ (0 ~ 100、デフォルト = 50) で指定します。例えば、デフォルト設定の 50% は約 128 (0 ~ 255 のグレースケール範囲で) の 2 値化しきい値を生成します。このとき、0 は白いテキスト上の黒と同じで、100 は黒いテキスト上の白と同じです。50% 未満の値を使用すると 2 値化しきい値が変更され、テキストがより少なく、背景がより広くなります。一方、50% より大きい値を使用すると、背景がより少なく、テキストがより多くなります。通常、デフォルト値は画像を正しく 2 値化しますが、背景テクスチャがある場合、またはそのほかの背景のばらつきがある場合は、この値を小さくすることで背景のばらつきを補正することができます。

:  この設定は、登録時と実行時の両方で同じでなければなりません。登録後にこの設定を変更すると、分類で問題が発生する原因となる可能性があります。
文字フラグメントのコントラストしきい値 正規化された画像のしきい値に対するコントラストの最小値を、断片全体のグレースケールレベルで指定します (0 ~ 255、デフォルト = 30)。断片のコントラストがこの値を超えていれば、その断片は文字の一部であるとみなされます。断片の各前景ピクセルは常にしきい値を満たすことを保証されますが、断片のすべてのピクセルがしきい値に非常に近いと、断片はテキストではなく、単にノイズとなる可能性が高くなります。値 0 では低コントラストの断片が拒否されるのを妨ぐことができます。
メインラインまでの最大フラグメント距離

テキストを貫通して、水平方向に伸びる「メインライン」から断片を垂直方向に削除する基準となる距離を文字の高さのパーセンテージとして指定します (0 ~ 1000、デフォルト = 0)。本来、文字は最適化された後に (角度方向および傾きを補正する段階)、水平の直線に沿って配置されることが予測されています。しかし、文字に「ジッタ」が見られることがあり、文字位置の縦方向に変動がある可能性があります。デフォルト設定では、これらの文字フラグメントは文字の「メインライン」に沿っていないため、拒否されてしまいます。このパラメータ設定を大きくすることによって、文字の「メインライン」に沿っていないフラグメントを保持することができます。

セグメント解析モード

文字の最適なセグメントを実行する文字解析モードのタイプを指定します。このパラメータは、グループステージ以外の追加の解析を実行するかどうかを決定します。

1 = 最小 基本のセグメント解析を実行します。グループステージ解析のみ実行します。
2 = 標準 (デフォルト) 最適なセグメントを決定するために、文字の間隔を含め、行全体の追加の解析を実行します。有効になっている場合、[最小ピッチ値]、[文字のピッチタイプ]、[文字ピッチ位置] パラメータの影響を受けます。
最小ピッチ値

2 つの文字の間に発生する可能性のあるピッチの最小値をピクセル単位で指定します (0 ~ 1000、デフォルト = 0)。ピッチは [文字ピッチ位置] パラメータに基づいて計算されます。2 つの断片の間のピッチがこれよりも小さい場合、これらの断片は同じ文字の一部であるとみなされます。ただし、結合後の文字幅が広くなりすぎる場合は例外です([文字幅の最大値] または [最小文字アスペクト比] パラメータの指定を参照)。

:  [セグメント解析モード] パラメータが [最小] に設定されている場合、このパラメータは無効になります。

文字ピッチ位置

2 つの連続する文字間のピッチの測定方法を指定します。ピッチは、隣り合う文字の対応する点と点の間の (おおよその) 距離として定義されます。ある文字の末尾から隣の文字の始めまでの距離 (文字間ギャップ) ではありません。文字に異なる幅がある固定ピッチフォントでは、通常、適切なピッチメトリクスが使用されている場合のみ、ピッチは一定の値を持ちます。

:  [セグメント解析モード] パラメータが [最小] に設定されている場合、このパラメータは無効になります。

1 = 自動 (デフォルト) 未知のメトリクスが使用されていることを示します。適切なピッチはその他のピッチ位置のいずれかである可能性もありますし、一定のピッチ位置がない可能性もあります (プロポーショナルピッチフォントの場合)。また、OCRMax 関数によって適切なピッチメトリクスが決定されます。
2 = 左-左

ある文字の文字領域の左端から隣の文字の文字領域の左端までの距離を測定したピッチを指定します。

:  「左」および「右」という用語は、ROI により定義された座標を基準にしています。つまり、「右」は正の X 方向です。
4 = 中央-中央 ある文字の文字領域の中央から隣の文字の文字領域の中央までの距離を測定したピッチを指定します。
8 = 右-右

ある文字の文字領域の右端から隣の文字の文字領域の右端までの距離を測定したピッチを指定します。

:  「左」および「右」という用語は、ROI により定義された座標を基準にしています。つまり、「右」は正の X 方向です。
文字のピッチタイプ

連続する文字の文字間隔に 1 つの固定値を確保するか、特定の文字によって異なるのかを指定します。ピッチは、隣り合う文字の対応する点と点の間の (おおよその) 距離として定義されます。ある文字の末尾から隣の文字の始めまでの距離 (文字間ギャップ) ではありません。

:  [セグメント解析モード] パラメータが [最小] に設定されている場合、このパラメータは無効になります。
1 = 自動 (デフォルト) ピッチタイプは不明だが、固定、またはプロポーショナルのどちらかで、可変ではないことを表します。OCRMax 関数によって最適なタイプが決定されます。
2 = 固定 ピッチが固定、つまり任意の 2 文字のピッチは一定であることを表します。たとえば、文字矩形の幅は関係ありません。このピッチは、[文字ピッチ位置] パラメータを基準に測定されます。
4 = 比例

ピッチがプロポーショナルである、つまり任意の 2 文字のピッチはその文字によって異なることを表します。例えば、2 つの小文字「i」の間の距離は、2 つの大文字「M」の間の距離よりもかなり少なくなります。

:  
  • ピッチの計測値は文字列全体を通して一定ではありませんが、通常、文字間ギャップはほぼ一定です (文字間ギャップとは、ある文字の文字領域の右端から、隣の文字の文字領域の左端までの距離です)。
  • 「左」および「右」という用語は、ROI により定義された座標を基準にしています。つまり、「右」は正の X 方向です。
8 = 可変

文字列全体で、文字から文字までのメトリックが一定ではなく (たとえば、文字の配置がばらばらである)、ピッチは固定でもプロポーショナルでもないことを表します。OCRMax 関数でピッチのタイプを特定することは推奨しません。

:  [変数] ピッチは [自動] とは異なります。[自動] は、ピッチは固定またはプロポーショナルのどちらかではあるが、不明であることを前提にしています。
出力画像グラフィックス

表示する出力画像の種類を指定します。

:  このパラメータは、[全般] タブの [出力画像グラフィックス] パラメータを一時的に上書きします。[セグメント] タブを終了すると、[全般] タブの [出力画像グラフィックス] パラメータの設定が復元されます。
0 = 入力画像 (デフォルト) 入力画像が表示されます。
1 = 正規化された画像 正規化された画像が表示されます。
2 = 2 値化された画像 2 値化された画像が表示されます。
診断の表示

画像に表示するグラフィックス診断データのタイプを指定します。

0 = 非表示 (デフォルト) OCRMax 関数を含んでいるセルがスプレッドシート内でハイライトされている場合を除き、すべてのグラフィックス診断データが表示されません。
1 = 不合格文字のみ表示

不合格になった文字の周囲領域が赤色で描画され、テキストのメインラインは青色の矩形で囲まれます。

2 = 保存されたフラグメントのみ表示

保存されたフラグメントの周囲領域がシアンで描画され、テキストのメインラインは青色の矩形で囲まれます。

3 = 不合格フラグメントのみ表示

不合格になったフラグメントの周囲領域が黄色で描画され、テキストのメインラインは青色の矩形で囲まれます。

4 = すべて表示 保存された文字 (緑)、不合格文字 (赤)、保存されたフラグメント (シアン)、不合格フラグメント (黄)、テキストのメインライン (青)、およびテキストの拡張メインライン (マゼンタ) の周囲領域が描画されます。

[フォントの登録] タブ

[フォントの登録] タブを使用して、文字の登録、表示、名前の変更、および削除を実行できます。タブは、登録フォントを管理する [文字] と、文字登録パラメータを定義する [登録] の 2 つのグループに分かれています。

:  
  • このタブのコントロールは、[全般] タブの [登録モード][登録文字列]、および [フォントの登録] パラメータにはリンクされていません。
  • [フォントの登録] タブ内では、ROI を調整でき ([グラフィックスの編集] ボタンが有効)、ROI が変更されるとセグメンテーショングラフィックス (文字領域) が更新されます。
  • マルチバイト文字名 (漢字など) はサポートされていません。マルチバイト文字を登録できますが、文字に指定する名前はシングルバイト名にする必要があります。

[文字] グループボックスコントロール

登録後、各登録文字はツリーで表示できます。ツリーでは、文字はフォルダとラベルが割り当てられ、それに応じてグループ化されます (文字が一致するラベルを持つ場合)。

  • ルートのフォントフォルダを選択すると、右側のパネルにフォント内のすべての文字が表示されます。文字は、下にラベルの付いたアイコンとして表示されます。
  • 文字フォルダを選択すると、右側のパネルにその文字の登録インスタンスがすべて表示されます。文字は、下にラベルの付いたアイコンとして表示されます。
  • 文字の登録インスタンスを選択すると、右側のパネルに合わせてズームされた文字が表示されます。
ヒント :  OCRMax 関数に各文字の複数の登録インスタンスを実行時に読み取るように指定すると、関数は類似の文字の種類をより正確に判別できます。ただし、同じ文字のインスタンスの複数登録には、利点と欠点があります。複数のインスタンスを登録する利点は、特に、分類を間違えやすいテキスト (8 と B など) を読み取るときに、より高度な分類パフォーマンスを期待できる点です。複数のインスタンスを登録する欠点は、関数の実行時間が減少する、複数の登録インスタンスでは最高得点だけでなく 2 番目に高い得点も改善するため、信頼性得点が減少することがある、間違った文字が登録されることがあるといった点です。
  • インポート[開く] ダイアログを起動します。このダイアログでは、OCRMax データファイル (*.ocm) として保存されたフォントをインポートできます。
  • エクスポート: [名前を付けて保存] ダイアログを起動します。このダイアログでは、フォントを OCRMax データファイル (*.ocm) として保存できます。
  • 名前変更: 項目を選択した後にクリックして、名前を変更します。ツリーまたは右側のリストパネル内の要素の名前を変更できます。

    :  文字グループの名前を変更すると、グループ内のすべての文字に新しいラベルが割り当てられます。単一文字の名前を変更すると、新しいラベルがその単一の選択された文字に割り当てられます。文字はツリー内の新しいグループまたは異なるグループに移動されます。
  • 削除: 項目を選択した後にクリックして、フォントから削除します。ツリーまたは右側のリストパネル内の要素の名前を変更できます。

    :  フォントフォルダを削除すると、フォントがクリアされ、すべての文字が削除されます。文字グループを削除すると、削除したグループのラベルと一致するラベルを持つ文字はすべて削除されます。

[登録] グループボックス

文字を登録するには、事前に文字が正しくセグメンテーションされている必要があります。

  • すべての文字をフォントに追加: ROI 内のすべての文字を登録するように指定します。登録対象の文字を [文字列の登録] テキスト入力ボックスに入力してから、[登録] ボタンをクリックします。[文字列の登録] テキスト入力ボックスの文字数は、セグメンテーションされた文字の数に一致している必要があります。
  • 新規文字をフォントに追加: ROI 内の新しい文字のみを登録するように指定します。登録対象の文字を [文字列の登録] テキスト入力ボックスに入力してから、[登録] ボタンをクリックします。[文字列の登録] テキスト入力ボックスの文字数は、セグメンテーションされた文字の数に一致している必要があります。
  • 個々の文字をフォントに追加: ROI 内の特定の文字を登録するように指定します。このオプションを選択すると、[文字列の登録] テキスト入力ボックスは無効になり、[登録] ボタンをクリックすると [個々の文字をフォントに追加] ダイアログが起動します。このダイアログでは、ROI の展開された画像と、セグメンテーションされた各文字の下にラベルとテキスト入力ボックスが示されます。ラベルは、その文字に現在関連付けられているシンボルです (「?」は、不明または未登録の文字を示します)。ラベルの下にテキスト入力ボックスがあります。セグメンテーションされた各文字のラベルをテキスト入力ボックスに入力します。テキスト入力ボックスを空のままにすると、文字は再登録されません。[登録] ボタンをクリックしてダイアログを閉じます。
  • 文字列の登録: 登録するテキスト文字列を指定します。[文字列の登録] テキスト入力ボックスの文字数は、セグメンテーションされた文字の数に一致している必要があります。
  • [登録] ボタン: 登録をアクティブ化します。

[フィールド化] タブ

[フィールド化] タブでは、OCRMax 関数の [フィールド文字列] 引数と [フィールド定義] 引数をグラフィカルに作成および編集することができます。結果の値は、リテラル文字列として関数に挿入されます。

[フィールド化] は、文字列を確認し修正する機能を提供し、一連の最適一致した有効な文字列を返します。[フィールド化] には 2 通りの基本的な用途があります。

  • OCR の結果の検証。[フィールド文字列] および [フィールド定義] パラメータに基づいて、返された文字列が正しいかどうかを判断します。
  • OCR の結果の修正。返された文字列が許容可能な結果リストにない場合は、返された文字列に最も近い、そのフィールドで許可されている許容文字列の検索を試みます。

フィールド化の標準的な使用例では、文字列にプレフィックス文字またはサフィックス文字、あるいはその両方が含まれている場合に、フィールド形式を使用してプレフィックス/サフィックス文字を無視します。この場合、[フィールド文字列][フィールド定義] によって ROI 内の文字列位置のオフセットが決まります。

フィールド文字列

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

フィールド文字列の各文字は、0 ~ 31 のインデックス付きフィールド位置に対応します。フィールド文字列には、読み取りを成功させたい文字列の文字と少なくとも同じ数の位置が含まれている必要があります (つまり、10 文字存在し、フィールド文字列で 9 文字のみ指定した場合は、最適一致が 9 つ返されます。しかし、8 文字存在し、フィールド文字列で 9 文字指定した場合、関数は #ERR を返します)。デフォルトでは、フィールド文字列の各位置は、アスタリスク(*)か英数字の「ワイルドカード」で示されます。これは、文字列のどの位置でもすべての文字が有効であることを意味します。

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

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

フィールド文字列

エントリ

説明 有効な文字
* ワイルドカード フォントに含まれる任意の登録文字です。
N 数字 0123456789
A 大文字の英字 ABCDEFGHIJKLMNOPQRSTUVWXYZ
a 小文字の英字 abcdefghijklmnopqrstuvwxyz
H 16 進値(大文字の英字と数字) 0123456789ABCDEF
h 16 進値(小文字の英字と数字) 0123456789abcdef
O 8 進値 01234567
:  
  • フィールド文字列のある位置を特定の文字に制限する場合は、その文字を入力してください。文字はフォントに登録されている必要があります。また、[フィールド定義] パラメータを使用して再マップしない限り、上記の定義済みフィールド文字列エントリの文字を使用することはできません。
  • スペースを含む文字列を読み取るには、フィールド文字列にスペースを含めます。その位置の対応するフィールド文字列エントリがアスタリスク(*)の場合、ReadText 関数はスペースを読み取りません。
  • [全般] タブの [フィールド文字列] パラメータがセル参照として定義されている場合、[フィールド化] タブの [フィールド文字列] オプションは無効になり、セル参照の現在の値が表示されます。

フィールド定義

必要に応じ、フィールド定義設定を使用してフィールド文字列のユーザ定義エントリを作成できます。このエントリがフィールド文字列に含まれると、このエントリの挿入位置で有効となる文字のリストが限定されます。いくつかの定義済みフィールド定義があり、ユーザ定義のフィールド定義を追加できます。定義済み定義はグレーのテキストで表示され、削除も編集もできず、有効または無効の切り替えのみ可能です。ユーザ定義の定義は黒色のテキストで表示され、追加、削除、または編集できます。フィールド定義を追加するには、[新規追加] ボタンをクリックし、文字のアイコンを割り当ててから、定義を文字に割り当てます。

:  
  • ユーザ定義の定義の数は、OCRMax 関数の数式の長さ (249) に制限されています。
  • OCRMax プロパティシートが閉じられたときに無効となったユーザ定義の定義は削除され、関数のプロパティシートが再度開かれたときには使用できません。
  • [全般] タブの [フィールド定義] パラメータがセル参照として定義されている場合、[フィールド化] タブの [フィールド定義] オプションは無効になり、セル参照の現在の値が表示されます。

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

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

フィールド定義のコントロール

  • フィールド文字列内の文字のみにマッチを行う: 関数が、フィールド文字列によって示されている文字に対してのみ文字の比較を試みるかどうかを指定します。

    :  [検査モード] が [認識と照合] に設定されている場合、このパラメータは [マッチ文字列] パラメータに指定されたテキスト文字列に対して比較されます。
  • 可変長文字列: 定義されたフィールド文字列が読み取りテキスト文字列全体の中の部分文字列であるかどうかを指定します。部分文字列が検出された場合は、最適一致の部分文字列が返されます。

    :  [外部設定] パラメータが OCRMaxSettings 関数への参照として設定されている場合、[フィールド文字列内の文字のみにマッチを行う] および [可変長文字列] パラメータは無効になります。
  • 最小長: [可変長文字列] パラメータが有効な場合、このパラメータは許容可能な文字列長の最小値を指定します (0 ~ 100、デフォルト = 1)
  • 最大長: [可変長文字列] パラメータが有効な場合、このパラメータは許容可能な文字列長の最大値を指定します (0 ~ 100、デフォルト = 25)
  • 最大開始インデックス値: [可変長文字列] パラメータが有効な場合、このパラメータは考慮対象となる、フィールド形式の部分列を指定します。部分列はこのインデックス値を超えない位置で開始する必要があります (0 ~ 100、デフォルト = 100)
  • 最小終了インデックス値: [可変長文字列] パラメータが有効な場合、このパラメータは考慮対象となる、フィールド化の部分列を指定します。部分列はこのインデックス値以上の位置で終了する必要があります (0 ~ 100、デフォルト = 0)

[結果] タブ

[結果] タブは、総合結果と各文字の得点を表示します。[全体結果] と [文字結果] の 2 つのセクションに分かれています。

全体結果

  • ステータス: 関数の総合結果が合格か不合格かを表示します。

文字結果

  • 文字: その位置で読み取った文字を表示します。
  • ステータス: 読み取り文字のステータス ([読み取り (Bad)]、[読み取り (Good)]、[無視]、[コンフュージョン]、[ミスマッチ]、[コンフュージョンミスマッチ]、または [検証失敗]) を表示します。
  • [読み取り (Bad)]:良好な読み取りとみなされる [アクセプトしきい値] を上回る十分に高い得点の文字ではありません。
  • [読み取り (Good)]:関数はこの位置の文字を正常に読み取りました。
  • [無視]:フィールド形式が有効な場合、フィールド形式文字列が指定され、それが関数によって読み取られた文字列より短いと、文字列の先頭または末尾の文字がセグメンテーションされますが (黄色)、総合結果には含まれません。例えば、フィールド形式定義が ABC の場合、関数によって読み取られた文字列が「12ABC34」であると、「1234」は無視されます。
  • [コンフュージョン]:関数は、良好な読み取りとして十分に得点の高い文字を識別しました ([アクセプトしきい値] パラメータ値を上回る)。ただし、得点が非常に近い別の文字があり ([コンフュージョンしきい値] パラメータ値以内)、関数が正しい文字を選択したかどうかは確実ではありません (コンフュージョン = (1 番目の得点 - 2 番目の得点)/信頼性しきい値)。
  • [ミスマッチ]:関数は、フィールド化に一致しないどの文字よりも非常に得点の高い、フィールド形式に一致しない文字を検出しました。フィールド形式に一致しない文字は、この位置に印刷されることが多くあります。このステータスを返すには、フィールド形式が有効になっている必要があります。

    :  ミスマッチステータスは、OCRMaxSettings 関数が使用されており、その関数の [フィールド化していない文字を無視] が無効になっている場合のみ返されます。
  • コンフュージョンミスマッチ:コンフュージョンとミスマッチの両方の条件を満たす文字を検出しました。
  • [検証失敗]:OCRMaxSettings 関数が使用されており、その関数の [追加の文字検証をスキップ] パラメータが無効の場合、関数は追加の検証手順を通じて文字を解析し、関数が誤った読み込みを生成しないように保証します。
  • 得点: 読み取った文字がフォントデータベース内の登録文字にどのぐらい近いかを測定した得点を表示します。
  • コンフュージョン:次の最適一致の文字を表示します。
  • コンフュージョン得点:次の最適一致と比較した場合に、選択した一致がどのぐらい確実かを示す測定値を表示します。

[診断] タブ

[診断] タブには、OCRMax 関数による ROI 内の文字のセグメンテーション方法に関する情報が表示されます。このデータは、調整するパラメータ、調整する量、文字や文字フラグメントが正しくセグメント化されていないかどうかを判断する際に有用です。このタブは、診断データのグラフィックス表示を指定する [診断の表示] パラメータとともに使用します。

:  このタブは、パラメータを変更した場合や、新しい画像を取り込み/ロードすると自動的に更新されます。

メインラインのデータ

  • [メインライン角度]:ROI に対する文字領域の、角度方向の計測値を角度で表示します。
  • [文字スキュー]:ROI に対する文字領域の、角度スキューの計測値を角度で表示します。
  • [文字ピッチ]:文字の最小および最大ピッチ測定値をピクセル単位で表示します。
  • [文字間ギャップ]:文字間ギャップの最小および最大測定値をピクセル単位で表示します。
  • [文字内ギャップ]:文字内ギャップの最小および最大測定値をピクセル単位で表示します。

合格した文字

  • [幅]:合格した文字の幅の最小および最大測定値をピクセル単位で表示します。
  • [高さ]:合格した文字の高さの最小および最大測定値をピクセル単位で表示します。
  • [サイズ]:合格した文字サイズの最小および最大測定値をピクセル単位で表示します。

除外した文字

  • [幅]:除外された文字の最小および最大測定幅をピクセル単位で表示します。
  • [高さ]:除外された文字の高さの最小および最大測定値をピクセル単位で表示します。
  • [サイズ]:除外された文字サイズの最小および最大測定値をピクセル単位で表示します。
:  除外された文字がない場合、#ERR が表示されます。

合格したフラグメント

  • [サイズ]:合格したフラグメントのサイズの最小および最大測定値をピクセル単位で表示します。
  • [コントラスト]:合格したフラグメントのコントラストの最小および最大測定値を割合 (%) で表示します。
  • [メインラインまでの距離 (%)]:合格したすべてのフラグメントの最大 Y 距離を、メインラインの高さの割合 (%) で表示します。

除外したフラグメント

  • [サイズ]:除外されたフラグメントのサイズの最小および最大測定値をピクセル単位で表示します。
  • [コントラスト]:除外されたフラグメントのコントラストの最小および最大測定値を割合 (%) で表示します。
  • [メインラインまでの距離 (%)]:除外されたすべてのフラグメントの最大 Y 距離を、メインラインの高さの割合 (%) で表示します。

OCRMaxの出力

戻り値 読み取られた文字列を含んでいるデータ構造体。入力パラメータが無効であれば #ERR を返します。
結果 OCRMax 関数が初めてセルに挿入されると、スプレッドシート内に結果テーブルが自動的に作成されます。

OCRMaxデータアクセス関数

次のデータアクセス関数がスプレッドシートに自動挿入され、結果テーブルが作成されます。

文字列 GetString(OCR 最大) 参照されているデータ構造体のテキスト文字列を返します。
文字列合格 GetPassed(OCRMax) 参照されているデータ構造体の文字列全体の合格/不合格ステータスを返します。
インデックス    
文字 GetChar(OCRMax, インデックス) 参照されているデータ構造体のインデックス付き文字を返します。
得点 GetScore(OCRMax, インデックス) 参照されているデータ構造体のインデックス付き文字の一致得点 (0 ~ 100) を返します。
合格 GetPassed(OCRMax, インデックス) 参照されているデータ構造体のインデックス付き文字の合格/不合格ステータスを返します。
2 番目文字 GetChar(OCRMax, インデックス 0, [インデックス 1]) 2 番目に高い得点の文字を返します。
2 番目得点 GetScore(OCRMax, インデックス 0, [インデックス 1]) 2 番目に高い得点の文字の得点を返します。
文字差   インデックス付き文字の得点と 2 番目の得点値の差を返します。