Как найти текст
Распознать текст в выбранной области
Код выполняется в верхнеуровневом файле действия C# Script живого EyeAuras. В той же папке нужна аура TextSearch с настроенным Text Search: выберите окно или экран, область распознавания и доступный OCR-движок с нужным языком. Сначала убедитесь в редакторе триггера, что он получает изображение и распознаёт текст.
Выводим распознанный текст
Импортировать готовый пример можно отсюда https://eu.eyeauras.net/share/S20240223231042V9jd1AoFcJ6v
- Создаем ауру(в примере называется TextSearch), кидаем в нее триггер Text Search
- В триггере указываем зону распознавания, язык и т.п.
- Создаем ауру со скриптом
- Копипастим, запускаем, если все хорошо - скрипт напечатает распознанный текст
using EyeAuras.OpenCVAuras.Triggers.TextSearch;
using System.Linq;
var trigger = AuraTree.FindAuraByPath(@".\TextSearch") // находим ауру по имени
.Triggers.Items // перебираем все триггеры
.OfType<ITextSearchTrigger>() // и находим триггеры "Поиск текста"
.First(); // из всех берем первый, если не найдено - будет ошибка
var matchResult = trigger.Refresh(); // заставляем триггер выполнить поиск
var text = matchResult.Detected.Text;
if (string.IsNullOrWhiteSpace(text))
{
Log.Warn("Text was not recognized; check capture and OCR settings");
return;
}
Log.Info($"Text: {text}");
В Event Log появится распознанная строка либо предупреждение. Detected.Text — результат OCR, а Detected.Success ещё зависит от условий поиска, заданных в триггере; это не одно и то же. Refresh() синхронный, токен отмены в него не передаётся. Полученный из дерева триггер не нужно уничтожать. Для координат слов включите сегменты и используйте пример клика по тексту; контракты ищите через карту CV.