Как найти цвет
Вывести координаты найденной цветной области
Это верхнеуровневый C# Script EyeAuras. Подготовьте рядом ауру ColorSearch с триггером Color Search: задайте цель захвата, ROI, цвет и диапазон сходства. Результат — экранный прямоугольник в журнале, без перемещения мыши.
Импортировать готовый пример можно отсюда https://eu.eyeauras.net/share/S20240223230313LBOJUBwnUmRU
- Создаем ауру(в примере называется ColorSearch), кидаем в нее триггер Color Search
- В триггере указываем где искать, какой цвет и т.п.
- Создаем ауру со скриптом
- Копипастим, запускаем, если все хорошо - скрипт напечатает координаты найденной зоны
var trigger = AuraTree.FindAuraByPath(@".\ColorSearch") // находим ауру по имени
.Triggers.Items // перебираем все триггеры
.OfType<IColorSearchTrigger>() // и находим триггеры "Поиск цвета"
.First(); // из всех берем первый, если не найдено - будет ошибка
var matchResult = trigger.Refresh(); // заставляем триггер выполнить поиск
if (matchResult.Detected.Success != true || matchResult.Detected.Bounds == null) {
// найти не удалось - больше делать нечего
Log.Warn("Colored area not found");
return;
}
// нашли цвет, берем локальные(оконные) координаты
var localRect = matchResult.Detected.Bounds.Value;
// конвертируем в экранные
var screenRect = matchResult.ToScreen(localRect);
Log.Info($"Colored area found @ {screenRect}");
Важно! Обратите внимание, что в самом триггере на поиск цвета указано искать цветной прямоугольник
Comparison Granularity = Average Color of 8x8 Pixel BlocksПо умолчаниюColor Searchусредняет цвет всего выбранного региона, а это не то, что нам нужно
Detected содержит состояние и локальный Bounds; ToScreen переводит его через матрицы этого кадра. Без подходящей области скрипт выводит предупреждение. Ошибку захвата нужно отличать от обычного отсутствия совпадения по диагностике триггера. Значение порога берётся из настроенного триггера, а не из defaults отдельного CV accessor. Триггер из дерева и кадры результата заимствованы; не освобождайте их в скрипте. Refresh() выполняет синхронную операцию и сам по себе не обещает отмену токеном.
Дальше
Контекст скрипта · Захват и результаты CV · CV API
Контракты сверены со срезом EyeAuras 20fd3d4 и PoeEye 0e02c98. Полные сигнатуры смотрите в SDK/XML своей версии; наличие символа не подтверждает доступность внешнего пакета или нативного компонента. Пример здесь не проверялся компиляцией или запуском.