メインコンテンツへスキップ
Step 6 で説明したとおり、画像 1 と 6 では、写真のすべての部分が Picture 型の画像オブジェクトとして認識されるわけではありませんでした。 写真全体を取得するには、プログラムが写真領域内にあるすべての種類の Image Object を見つける必要があります。 そこで、便宜上、写真に関するすべての要素を 1 つの複合 Photo 要素にまとめます。これにより、生成される仮説の数も抑えられます。
Group 要素 ” Photo ” には、次の要素が含まれます。
  • 写真に対応する Object Collection 型の PhotoPicture 要素
  • YOUR PHOTO IN FANCY DRESS という名前に対応する Static Text 型の PhotoHeader 要素
  • PhotoPicture 要素を見つけるために必要な、写真の周囲の 4 本の区切り線
名前のテキスト (つまり YOUR PHOTO IN FANCY DRESS) はこの文書内のほかの場所には現れないため、まず対応する要素を追加し、その要素を基準に区切り線を検索します。 YOUR PHOTO IN FANCY DRESS という名前は文書内で一意なので、これを Group 要素に追加し、区切り線を探すために使用します。 field 名に対応する要素を作成するには、次の手順に従います。
  1. Static Text 型の要素を作成し、PhotoHeader という名前を付けます。
  2. 要素のプロパティは、前述したほかの field 名と同様に設定します。
画像に対して FlexiLayout のマッチングを試してください。すべての画像でプログラムがこの名前を確実に検出することがわかります。 写真の周囲にある 4 本の区切り線に対して Separator 要素を作成し、次の名前を付けます。
  • USeparator - 上側の区切り線
  • BSeparator - 下側の区切り線
  • LSeparator - 左側の区切り線
  • RSeparator - 右側の区切り線
Properties ダイアログの Separator タブで、4 本の区切り線それぞれの orientation (Vertical または Horizontal) を指定します。その他のプロパティは変更しないでください。
次に、テスト画像を使って各区切り線の検索領域を指定します。 上側の区切り線 (USeparator 要素) :
  • 写真のキャプションより下で、その top boundary から 100 ドット以内の位置 (PhotoHeader 要素の Below かつ PhotoHeader の Above、Offset = -100) 。
  • キャプションの長さを左右それぞれ 80 ドット以上超えない範囲内 (PhotoHeader 要素の right boundary の Left of、Offset = -80、Reference boundary = right、および PhotoHeader 要素の left boundary の Right of、Offset = -80、Reference boundary = left) 。
下側の区切り線 (BSeparator 要素) :
  • NAME field の名前より下 (NameHeader 要素の Below) 。
  • IdentityNumber の bottom より上 (IdentityNumber 要素の AboveElementBoundary = bottom) 。
  • 名前の長さを左右それぞれ 80 ドット以上超えない範囲内 (PhotoHeader 要素の right boundary の Left of、Offset = -80、Reference boundary = right、および PhotoHeader 要素の left boundary の Right of、Offset = -80、Reference boundary = left) 。
左側の区切り線 (LSeparator 要素) :
  • 上側と下側の区切り線の間隔を上下それぞれ 50 ドット以上超えない範囲内 (USeparator 要素の Below、Offset = -50、および BSeparator 要素の Above、Offset = -50) 。
  • 区切り線は上側の区切り線の left boundary からあまり離れておらず、その距離は 40 ドット以内 (USeparator 要素の left boundary の Right of、Offset = -20、Reference boundary = left、および USeparator 要素の left boundary の Left of、Offset = -20、Reference boundary = left) 。
右側の区切り線 (RSeparator 要素):
  • 上側と下側の区切り線の間の距離に対して、各辺で 50 ドットを超えて広がらない領域内 (Below the USeparator element, Offset = -50, and Above the BSeparator element, Offset = -50)。
  • 区切り線は上側の区切り線の右境界からあまり離れていない位置にあり、その距離は 40 ドットを超えてはなりません (Right of the right boundary of the USeparator element, Offset = -20, Reference boundary = right, and Left of the right boundary of the USeparator element, Offset = -20, Reference boundary = right)。
ここで画像に対して FlexiLayout のマッチングを試すと、プログラムがこれらの領域を検出できることがわかります。Tree of Hypotheses で仮説を右クリックし、ショートカットメニューから Show Search Area を選択します。検索条件が誤っていて、プログラムが検索領域を適切に見つけられなかった場合は、すぐにそれとわかります。正しい仮説の検索領域であっても調整が必要なことがあり、たとえば小さすぎる場合があります。 すべての区切り線の最大サイズは、事前認識中に Separator object の Properties を確認しながら、試行錯誤によって求められました。 YOUR PHOTO IN FANCY DRESS field を記述するには:
  1. 型 Object Collection の要素を作成し、PhotoPicture という名前を付けます。
  2. PhotoPicture 要素の検索領域を Relations タブで指定します。
    • 上側の区切り線の下 (USeparator 要素の Below)
    • 下側の区切り線の上 (BSeparator 要素の Above)
    • 左側の区切り線の右 (LSeparator 要素の Right of)
    • 右側の区切り線の左 (RSeparator 要素の Left of)
次に PhotoPicture ブロックを作成し、Photo Picture 要素をソース要素として指定します。