テキスト読み取り関数
以下の情報は、Eggplant Functionalで光学文字認識(OCR)検索または文字検索のためのReadCharacters()関数を使用してテキスト認識を行うためのSenseTalkコマンドと関数について説明します。
ReadText
関数
動作: 指定された画面 矩形または指定された点付近のテキストを返します。
パラメーター: 読み取るべき画面領域を示すための必要な画像ペア、単一画像、矩形(座標ペア)、または点。 (画像のペアを使用すると、通常は最高の結果が得られます。)
ReadText
関数は、テキスト検索結果の改善に役立つオプションのテキストプロパティリストも取ります。SenseTalkには、ReadText
関数や他のOCR検索と一緒に使用できる多くのOCRプロパティが含まれています。OCRプロパティの完全なリストについては、テキストプロパティを参照してください。以下のプロパティは、通常、OCRエンジンがテキストを認識するのに最も役立ちます:
- Contrast: SUTディスプレイがOCR分析の前に高コントラストの二色画像に変換されるかどうか。
contrast
がオンの場合、「コントラストカラー」と呼ばれる色(ContrastColor
プロパティを使用して設定できます)がSUTディスプレイの主要色と見なされ、他のすべての色は二次色として扱われます。テキストはどちらの色でも見つけることができます。Contrast
プロパティは、テキストの検索(検出)と読み取りの両方で使用可能です。- ContrastColor:
Contrast
がオンの場合、コントラストカラーはSUTディスプレイの主要色と見なされ、他のすべての色は二次色として扱われます。背景色を見つける方法については、背景色の決定を参照してください。 - ContrastTolerance:
Contrast
がオンの場合、contrastTolerance
は、ピクセルがコントラストカラーとして見えるために許容される最大のチャンネルあたりの色差を設定します。
- ContrastColor:
- ValidCharacters:
validCharacters
プロパティは、OCRテキストエンジンが見つけることができる文字を制限します。OCRが定義された領域に文字が存在すると判断し、それらの文字がvalidCharacters
文字列に提供された文字と一致しない場合、"^"を返します。 - ValidWords: OCRが一致と見なすことができる単語を制限することで、OCRエンジンを成功する一致に向ける、またはエンジンがテキスト文字列を正しく認識するように強制できます。このプロパティは、OCRテキストエンジンが見つけることができる単語を制限します。詳細については、OCRエンジンの辞書をカスタマイズするを参照してください。
validWords
プロパティはLanguage
プロパティをオーバーライドします。このオーバーライドは、validWords
プロパティの一部ではない単語は返されないことを意味します。 - IgnoreSpaces:
ignoreSpaces
プロパティは、OCRテキスト検索によってテキスト文字列中のスペースが無視されるようにします。たとえば、文字列 "My Computer" は "MyComputer" または "M y C o m p u t e r" と一致します。ignoreSpaces
プロパティはデフォルトでオンになっています。これは、OCRが意図しないスペースを時々読み取 るため、特に離散的な単語ではない文字列や、通常とは異なる字間隔のテキストで顕著です。 - IgnoreUnderscores:
ignoreUnderscores
プロパティは、OCRテキスト検索が検索中にアンダースコアをスペースとして扱うようにします。例えば、文字列 "My_Computer" は "My_Computer" または "My Computer" と一致します。ignoreUnderscores
プロパティはデフォルトでオンになっています。これは、OCRが時々アンダースコアを認識しないためです。 - Enhance Local Contrast: OCRに送信されるテキスト画像のローカルコントラストを自動的に高めるようにOCRに指示する場合は、このプロパティを有効にします。このプロパティは、読み取られているテキストの一部または全部が比較的低コントラストである場合、例えば暗い背景上の青いテキストのような場合、認識を助ける可能性があります。コントラストがオンの時、このプロパティは効果がないので、
Contrast
がオフの時にのみ有用です。 - Language: 探しているテキストの自然な言語。(サポートされている言語のリストは、OCR Language Supportを参照してください。)OCRはこれをガイドとして、使用している辞書に指定された単語を優先します。複数の言語を指定することができます。Eggplant Functionalはデフォルトで数多くの言語を搭載しており、追加の言語は購入可能です。言語が指定されていない場合でもOCRはテキストを読み取りますが、その結果を比較する辞書は持っていません。また、Custom OCR Dictionaryを作成することもできます。
- ValidPattern: このプロパティは、正規表現の値を取り、指定したパターンと一致する文字または単語のみを返します。SenseTalkで使用できる正規表現文字については、Using Patterns in SenseTalkを参照してください。パターンを好むが必須としない場合、PreferredPatternを参照してください。
これらの一般的なテキストプロパティの使用についての詳細は、Using OCR Properties in Searchesを参照してください。
ReadText()
で使用できるすべてのプロパティの完全なリストについては、Text Propertiesを参照してください。テキスト検索で最良の結果を得るためには、これらのプロパティを特定の環境で試してみることが必要かもしれません。
例:
put the last character of readtext("UpperLeft","LowerRight",contrast:on, contrastColor:[0,0,128],contrastTolerance:25) // readText関数が返す最後の文字だけを印刷します