Russian (Русский) - Change language

Пример 2. Шаг 13: Описание поля Recipe Name

Будем искать местоположение поля RecipeName как ближайший (снизу) к заголовку формы объект изображения, исключая из области поиска регионы элементов Recipe и RecipeNumber (см. Шаг 8). Для этого необходимы:

  1. элемент RecipeName (тип Character String), соответствующий самому полю Recipe Name.
  2. блок RecipeName, соответствующий полю RecipeName.

Для того чтобы создать элемент RecipeName:

  1. Создайте элемент типа Character String с именем RecipeName.
  2. Выберите вкладку Character String.
  3. Задайте алфавит. Исходя из информации, полученной при просмотре тестовых изображений, предполагаем, что это - все буквы латинского алфавита, цифры и символы «#», «-», «&», «.». Причем их порядок и количественное соотношение произвольно.
  4. Задайте значение параметра Percentage of alphabet characters равным 1.
  5. Снимите отметку с пункта Allow embedded hypotheses.
  6. В поле Percentage of non-alphabet characters задайте допустимую долю символов, не входящих в алфавит данного элемента, равную 0.2 (что означает 20%).
  7. В поле Character count задайте нечеткий интервал, оценивающий суммарную длину цепочки символов. Оставляем значение по умолчанию { -1, -1, INF, INF }. Таким образом, мы не накладываем никаких ограничений на длину цепочки символов.
  8. Перейдите на вкладку Relations.
    На вкладке  Relations  зададим, что название рецепта может находиться ниже нижней границы заголовка формы с отступом 100 dot, т.е. между заголовком формы и названием рецепта всегда есть зазор, не меньше 100 dot. Как можно видеть, на изображениях этим условиям поиска удовлетворяет каждая строка, расположенная ниже заголовка формы. Необходимо сузить область поиска.
  9. Перейдите на вкладку Advanced.
    В поле Advanced pre-search relations задайте дополнительное условие поиска Искать строку, ближайшую к верхнему краю формы. На языке описания FlexiLayout данное условие выглядит следующим образом:
    NearestY: 0*dot;
    В сочетании с условием поиска, заданным на вкладке Relations , это позволяет сузить поиск до одной строки, ближайшей к заголовку формы.
    Замечание. Данное условие также можно задать через интерфейс программы. Для этого перейдите на вкладку Relations , отметьте опцию Nearest и в выпадающем списке To выберите Page top edge.

    Показать пример

  1. Перейдите на вкладку Search Constraints.
  2. Как отмечалось выше (см. Шаг 8), из области поиска элемента RecipeName необходимо исключить регионы элементов Recipe и RecipeNumber. Для этого добавьте в поле Exclude regions of elements элементы Recipe и RecipeNumber, нажав кнопку Add... (рядом с полем Exclude regions of elements). В открывшемся диалоге Select Element to Exclude выберите соответствующий элемент.

    Показать пример

Просмотр результатов наложения гибкого описания показывает, что на всех тестовых изображениях поле RecipeName находится устойчиво.

Процесс создания блока RecipeName аналогичен процессу создания блока RecipeNumber. Отличие заключается в том, что для блока RecipeName в качестве исходного элемента необходимо указать элемент RecipeName.

12/1/2020 7:04:05 AM


Please leave your feedback about this article