Найти текст рядом с полем
(Доступно с версии Primo.AI.Server 1.0.13)

Элемент анализирует результат распознавания документа и находит текстовые блоки, расположенные вблизи указанного поля. Это позволяет автоматически извлекать связанные данные, например:
- Даты рядом с подписью
- Номера документов возле заголовков
- Комментарии рядом с полями ввода
Свойства
Символ * указывает на обязательность заполнения свойства. Описание общих свойств см. в разделе Свойства элемента.
| Группа | Свойство | Тип | Описание |
|---|---|---|---|
| Вывод | Результат | Primo.AI.Server.Tools.SmartOcr.TextNearToFieldSearcherResult | Результат поиска текста рядом с полем |
| Обработка | Наименование поля* | String | Название поля, относительно которого выполняется поиск текста |
| Расстояние по горизонтали* | int | Максимальное расстояние по горизонтали (в пикселях) от поля для поиска текста | |
| Расстояние по вертикали* | int | Максимальное расстояние по вертикали (в пикселях) от поля для поиска текста | |
| Результат распознавания* | Primo.AI.Server.Model.InferenceResultContent | Результат распознавания изображения |
Primo.AI.Server.Tools.SmartOcr.TextNearToFieldSearcherResult
Содержит результаты поиска текста:
| Свойство | Тип | Описание |
|---|---|---|
| IsFound | Boolean | Флаг наличия найденных элементов. True – если найдены текстовые блоки, False – если ничего не обнаружено. |
| Items | System.Collections.Generic.IReadOnlyCollection<Primo.AI.Server.Tools.SmartOcr.TextNearToField> | Коллекция найденных текстовых элементов |
Primo.AI.Server.Tools.SmartOcr.TextNearToField
Описание найденного текстового элемента:
| Свойство | Тип | Описание |
|---|---|---|
| IsFound | Boolean | Флаг успешности поиска |
| SourceField | Primo.AI.Server.Model.InferenceResultItem | Исходное поле для поиска |
| UnifiedText | String | Объединенный текст элементов |
| Items | System.Collections.Generic.IReadOnlyCollection<Primo.AI.Server.Model.InferenceResultItem> | Элементы распознавания |
| CropArea | System.Drawing.Rectangle | Границы области с найденным текстом |
Как это работает?
-
Определение границ поля
- Система находит указанное поле в результатах распознавания.
-
Расширение зоны поиска
- Вокруг поля формируется область с учетом
Расстояния по горизонталииРасстояния по вертикали.
- Вокруг поля формируется область с учетом
-
Поиск текста
- Все текстовые блоки, попадающие в расширенную зону, сохраняются.
-
Формирование результата
- Тексты объединяются в
UnifiedText, а координаты сохраняются вCropArea.
Пример использования
- Тексты объединяются в
Вход:
- Поле:
"Подпись" - Расстояние по X:
200 - Расстояние по Y:
50
Результат:
{
"IsFound": true,
"Items": [
{
"IsFound": true,
"SourceField": { "Text": "Подпись", "BoundingBox": [100, 200, 180, 220] },
"UnifiedText": "Дата: 15.05.2024",
"Items": [
{ "Text": "Дата:", "BoundingBox": [80, 180, 120, 200] },
{ "Text": "15.05.2024", "BoundingBox": [130, 180, 220, 200] }
],
"CropArea": { "X": 80, "Y": 180, "Width": 140, "Height": 20 }
}
]
}Рекомендации
- Оптимальные расстояния:
- Для табличных документов –
dist_x = 100-200,dist_y = 30-50. - Для текстовых документов (письма, договоры) –
dist_x = 200-300,dist_y = 50-100.
- Для табличных документов –
- Проверка
IsFound: