Skip to main content
Step 6 で説明したとおり、画像 1 と 6 では、写真のすべての部分が Picture 型の画像オブジェクトとして認識されるわけではありませんでした。 写真全体を取得するには、プログラムが写真領域内にあるすべての種類の Image Object を見つける必要があります。 便宜上、写真に関するすべての要素を 1 つの複合 Photo 要素にまとめます。これにより、生成される仮説の数も抑えられます。

Photo Group 要素の内容

PhotoPicture、PhotoHeader、および 4 つの Separator 要素を含む複合 Photo Group 要素を示す、ABBYY FlexiLayout Studio の FlexiLayout ツリーのスクリーンショット。
Photo Group 要素には、次の要素が含まれます。
  • 写真に対応する Object Collection 型の PhotoPicture 要素。
  • YOUR PHOTO IN FANCY DRESS という名称に対応する Static Text 型の PhotoHeader 要素。
  • PhotoPicture 要素を見つけるために必要な、写真の周囲にある 4 本の Separator。

field 名に対応する要素を作成する

YOUR PHOTO IN FANCY DRESS という名前は文書内のほかの場所には現れないため、まず対応する要素を Group 要素に追加し、それを使って区切り線を見つけます。
1

Static Text 要素を作成する

PhotoHeader という名前を付けます。
2

要素のプロパティを設定する

ほかの field 名と同じように設定します。
画像に対して FlexiLayout のマッチングを試してください。すべての画像でプログラムがこの名前を確実に検出することがわかります。

区切り線要素を作成する

写真の周囲にある 4 本の区切り線に対して Separator 要素を作成し、次の名前を付けます。 Properties ダイアログの Separator タブで、4 本の区切り線それぞれの orientation (Vertical または Horizontal) を指定します。その他のプロパティは変更しないでください。
写真の周囲にある 4 本の区切り線それぞれの orientation を Vertical または Horizontal に設定する、ABBYY FlexiLayout Studio の区切り線要素のプロパティ内にある Separator タブのスクリーンショット。

区切り線の検索領域を指定する

次に、テスト画像を使って各Separatorの検索領域を指定します。

上側の区切り線 (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 ドットを超えて広がらない領域内 (Below the USeparator element, Offset = -50, and Above the BSeparator element, Offset = -50)。
  • 区切り線は上側の区切り線の左境界からあまり離れていない位置にあり、その距離は 40 ドットを超えてはなりません (Right of the left boundary of the USeparator element, Offset = -20, Reference boundary = left, and Left of the left boundary of the USeparator element, Offset = -20, Reference boundary = left)。

右側の区切り線 (RSeparator 要素)

  • 上側と下側の区切り線の間隔より、左右それぞれ 50 ドットを超えて広くならない領域内 (USeparator 要素の Below、Offset = -50、および BSeparator 要素の Above、Offset = -50) 。
  • 上側の区切り線の右境界から 40 ドット以内 (USeparator 要素の右境界の Right of、Offset = -20、Reference boundary = right、および USeparator 要素の右境界の Left of、Offset = -20、Reference boundary = right) 。
ここで、画像に対して FlexiLayout のマッチングを実行すると、プログラムがこれらの領域を検出できることがわかります。仮説ツリーで仮説を右クリックし、ショートカットメニューの 検索領域を表示 を選択します。検索条件が誤っていて、プログラムが検索領域を適切に特定できない場合は、すぐに気づきます。正しい仮説の検索領域であっても、調整が必要なことがあります。たとえば、領域が小さすぎる場合があります。 すべての区切り線の最大サイズは、事前認識中に Separator オブジェクトのプロパティを調べながら、試行錯誤によって特定されました。

YOUR PHOTO IN FANCY DRESS field の説明

1

Object Collection 要素を作成する

名前を PhotoPicture にします。
2

Relations タブで検索領域を指定する

Relations タブで、PhotoPicture 要素の検索領域を指定します。
  • 上側の区切りより下 (USeparator 要素の Below) 。
  • 下側の区切りより上 (BSeparator 要素の Above) 。
  • 左側の区切りより右 (LSeparator 要素の Right of) 。
  • 右側の区切りより左 (RSeparator 要素の Left of) 。
最後に、PhotoPicture ブロックを作成し、PhotoPicture 要素をソース要素として指定します。