文字コレクションの操作
Eggplant Functionalの文字コレクション検索は、光学式文字認識(OCR)がテスト対象システム(SUT)上のカスタムフォントで書かれたテキストを認識できない場合に使用できる画像検索の一種です。また、SUT上の異常な背景が、一般的なフォントで書かれたテキストであってもOCRがテキストを読み取れない原因となることがあります。文字コレクション検索は、SUT上のテキストを、スイートにキャプチャして保存した「文字の画像」と照合することで動作します。
以下の情報を使用して文字コレクションを作成し、その文字コレクションをSenseTalkスクリプトで使用します。
ステップバイステップ:文字コレクションのキャプチャ
文字コレクションのキャプチャセッションを開始し、完了するには、以下の手順を実行します。
-
SUTに接続する。接続が完了すると、SUTがビューアウィンドウ に表示されます。
-
文字コレクションキャプチャセッションを開始します:
- メインメニューから、Control > Start Session > Character Collection Capture Session を選択します。
- ビューアウィンドウで、Start Session > Character Collection Capture Session をクリックします。
-
ビューアウィンドウで、SUT画面からキャプチャしたい個々の文字をクリックします。
-
すべての文字のキャプチャが完了したら、End Session をクリックします。
-
セッションに名前を付けて、Enter キーを押します。名前を変更しやすいように、セッション名フィールドがすでにハイライト表示されています。
-
作成したばかりのセッション(または別のセッションから文字を生成したい場合は別のセッション)を選択してハイライト表示し、Open Session をクリックします。
-
キャプチャした各文字について、以下のガイドラインに従って文字を調整します。以下のスクリーンショットを参考にしてください。このセッションで収集した文字のリストは、右ペインの下部にあります。
開いたセッションでは、キャプチャした文字が拡大表示されます。OCRがクリックポイントで文字を識別すると、その文字の周囲にキャプチャ領域を設定し、キャプチャした文字に自動的に名前が付けられます。文字画像には、それらが表す文字を識別する名前が付けられます。たとえば、lower_a、upper_A、digit_1、char_0xAB(文字と数字以外の文字)などの名前が付けられます。文字フィールドが空の場合、NO CHARACTER と表示されます。指定された文字の画像が文字コレクションにすでに存在する場合、またはこのキャプチャセッションの前半に存在する場合、画像名が赤で表示されます(画像名は、Character 値の隣にある文字列です。
キャプチャした文字を次のように調整します:
-
SUTウィンドウの左側の表示を調整して、画面アクションに適した視点を提供するようにするには、ズームインボタン をクリックして画面サイズを拡大するか、ズームアウトボタン をクリックして画面サイズを縮小します。これは表示の変更のみであり、キャプチャした文字には影響しません。
-
画像のサイズを変更するには、キャプチャエリアの端または角をドラッグするか、Alt + 矢印(Mac の場合は Option + 矢印)キーを押します。シフトキーを追加すると、キャプチャエリアを10ピクセル単位でリサイズできます。
ノート長方形のサイズを変更するときは、長方形の高さがほぼ同じになるようにしてください。小文字の場合、文字の下部を大幅に超えるような長方形に調整しないでください。
-
Search Type をドロップダウンメニューから選択します。選択した文字に対しては、デフォルトの選択肢が通常うまく機能します。詳細については、The Image Viewer: Searching & Properties を参照してください。
-
Character の横に表示される文字が、左側の SUT ウィンド ウの表示と一致しない場合は、その文字を手動で変更できます。文字を変更すると、変更された Character 値の隣にある文字列も変更されます。
-
キャプチャした文字のリストを移動するには、左下の矢印キーを使用するか、Next または Done ボタンをクリックします。
-
文字画像には、それらが表す文字を識別する名前が付けられます。たとえば、lower_a、upper_A、digit_1、char_0xAB(文字と数字以外の文字)などの名前が付けられます。
-
収集した文字を生成しないでスキップしたい場合は、Skip チェックボックスを選択します。
-
-
Generate Images をクリックし、キャラクターコレクションに名前を付け、キャラクターが正しく名付けられて設定されていると判断した後、Proceed をクリックします。
ノート続行する前に修正が必要な場合は、Cancel をクリックし、キャラクターにさらなる調整を加えてください。
Eggplant Functional は、このキャラクターコレクションキャプチャセッション中にキャプチャされた各キャラクターに対して、キャラクターを生成します。生成されないのは、
skipped
とマークされた文字だけです。Eggplant Functional は、指定したファイル名名を使用してこれらの生成された画像をイメージコレクションとして保存します。このイメージコレクションは、スイートの画像フォルダにあります。新しいキャラクターコレクションに画像を作成し、生成してから、その新しいコレクションから既存のコレクションに画像を移動することで、この他のキャラクターコレクションにも常に画像を追加できます。詳細については、Images Pane を参照してください。
このキャラクターコレクションキャプチャセッションからの文字は、すべてスイートウィンドウの Images ペインの Character Collections として利用できます。これらの文字は、既存のスクリプトを変更する場合や新しいスクリプトを追加する場合に、ReadCharacters() 関数 と一緒に使用できます。
キャラクターコレクションを使用した画像検索
キャラクターコレクションを使用して画像検索を実行するには、characters
プロパティを使用します。これは、キャラクターコレクションから画像名のリストを読み取ります。次の例では、いくつかの SenseTalk コマンドと characters
プロパティを使用して、モデル番号 #A1705
のキャラクターコレクション検索が完了します。
例:
click (characters: "#A1705", CharacterCollection: "modelnumber") // modelnumber キャラクターコレクションを使用して検索を完了します。
例:
If ImageFound(characters: "#A1705", CharacterCollection:"modelnumber") // Search for a specific model number.
click (characters:"#A1705", CharacterCollection:"modelnumber") // Click the model number if the search is successful.
End If
例:
If ImageFound(characters: "#A1705", CharacterCollection:"modelnumber") // 特定のモデル番号を検索します。
MoveTo (characters:"#A1705", CharacterCollection:"modelnumber") // マウスカーソルをキャラクターコレクション画像の中心に移動します。
End If
characters
プロパティを以下に示すプロパティと一緒に使用して、検索の精度を向上させることができます。詳細については、ReadCharacters()関数を参照してください。
- asList:
asList
がオン(asList:Yes
))の場合、ReadCharacters()
関数は、認識された文字の各グループに対して1つの文字列を含むリストを返します。 - characterPriority: この文字列には、優先度が高い順に並べられた優先文字が含まれています。デフォルトの設定は
";:."
です。この設定は、同じ場所で2つのキャラクター画像が見つかった場合に、どのキャラクターが認識されるかを制御します。たとえば、characterPriority:"OC"
を使用すると、"O"キャラクター画像が"C"キャラクター画像よりも優先度が高くなります。その結果、ReadCharacters
関数は、画面上の同じ場所でOおよびCの画像が見つかった場合、文字"C"の代わりに文字"O"を使用します。 - minimumVerticalOverlap: この値は、2つの文字が同じ行にあると見なさ れる最小のオーバーラップ(ピクセル単位)を設定します。2つの文字が
minimumVerticalOverlap
値よりも大きく重なっている場合、関数はこれらの文字が同じ行にあると見なします。 - maximumHorizontalOverlap: この値は、隣接する文字が同じスペースを占めていると見なされる最大のオーバーラップ(ピクセル単位)を設定します。2つの隣接する文字がこの設定よりも大きく重なっている場合、
ReadCharacters
関数は、これらの文字が同じスペースを占めていると見なします。 - maximumAdjacentGap: この値は、2つの隣接する文字の間に許容される最大の間隔(ピクセル単位)を設定します。この設定は、文字間にスペースがないことを前提としています。2つの隣接している文字がこの設定よりも離れている場合、
ReadCharacters
関数は、これらの文字を非隣接文字と見なします。 - maximumSpaceGap:この値は、2つの文字の間に暗黙のスペースが存在する最大の間隔(ピクセル単位)を設定します。2つの文字がこの設定よりも近くにある場合、
ReadCharacters
関数は、これらの文字がスペースで区切られているとは見なしません。 - spaceWidth:この値は、スペース文字の基準幅(ピクセル単位)を設定します。
ReadCharacters
関数は、この設定を使用して、広いスペースの間隔に対して返されるスペースの数を決定します。
キャラクターコレクションの検索を改善するために、他の画像プロパティも使用できます。