Я пытаюсь найти способ заставить распознавание изображений Sikuli использовать в C #. Я не хочу использовать сам Sikuli, потому что его язык сценариев немного медленный, и потому что я действительно не хочу вводить Java-мост в середине моего приложения .NET C #.
Итак, у меня есть растровое изображение, которое представляет область моего экрана (я назову эту область BUTTON1). Компоновка экрана могла немного измениться, или экран мог быть перемещен на рабочем столе - поэтому я не могу использовать прямую позицию. Сначала я должен найти, где текущая позиция BUTTON1 находится на экране в реальном времени. (Я пытался опубликовать фотографии этого, но я думаю, что не могу, потому что я новый пользователь ... Я надеюсь, что описание проясняет ...)
Я думаю, что Sikuli использует OpenCV под одеялом. Так как это открытый исходный код, я думаю, я мог бы перепроектировать его и выяснить, как делать то, что они делают в OpenCV, вместо этого реализуя его в Emgu.CV - но мой Java не очень силен.
Я искал примеры, показывающие это, но все примеры либо чрезвычайно просты (т. Е. Как распознать знак остановки), либо очень сложны (т. Е. Как распознавать лица) ... и, может быть, я просто плотный, но я не могу сделать прыжок в логике того, как это сделать.
Также меня беспокоит, что все различные процедуры манипуляции с изображениями на самом деле интенсивно используют процессор, и я действительно хочу, чтобы это было как можно более легким (на самом деле у меня может быть много кнопок и полей, которые я пытаюсь найти на экране ...) )
Итак, вместо этого я думаю:
A) Преобразовать растровые изображения в байтовые массивы и выполнить поиск методом грубой силы. (Я знаю, как сделать эту часть). И тогда
B) Используйте положение байтового массива, которое я нашел, чтобы вычислить его положение на экране (я действительно не совсем уверен, как я это делаю) вместо использования средства обработки изображения.
Это совершенно безумно? У кого-нибудь есть простой пример того, как можно использовать Aforge.Net или Emgu.CV для этого? (Или как конкретизировать шаг B выше ...?)
Спасибо!