code_34390.txt
P.S.: Перебор происходит по всем пикселам экрана, поэтому иногда может тормозить. Если у кого есть идеи по ускорению, очень интересно посмотреть
|
Ответов: 758
Рейтинг: 112
|
|||
|
Леонид, Может Вам поможет следующий пример - с поиском кнопки на экране по картинке
code_34390.txt P.S.: Перебор происходит по всем пикселам экрана, поэтому иногда может тормозить. Если у кого есть идеи по ускорению, очень интересно посмотреть |
|||
| карма: 1 |
| ||
| файлы: 1 | code_34390.txt [4.5KB] [348] |
|
Ответов: 8974
Рейтинг: 824
|
|||
|
miver, конечно в циклах for x := 0 to Bmp.width-subbmp.width-1 do надо посчитать заранее выведя расчёт из цикла, чуть прибавится скорость, да и обе картинки на первом, "грубом" этапе можно уменьшить раза в три-четыре, а на втором этапе по натуральным размерам уже искать точное положение.
(Надо попробовать линию разложить в Фурье и сравнивать спектр сразу всей линии, получится-ли быстрее |
|||
| карма: 19 |
|
|
Ответов: 758
Рейтинг: 112
|
|||
|
Нашел исходник FindImgFast.rar
Вот моя проба адаптации, поиск очень быстрый code_34391.txt ------------ Дoбавленo в 19.16: Только при выходе выводит ошибку, не могу понять где |
|||
| карма: 1 |
| ||
| файлы: 1 | code_34391.txt [5.5KB] [408] |
|
Ответов: 8974
Рейтинг: 824
|
|||
|
miver, во-во, по линиям сравнивать гораздо быстрее
|
|||
| карма: 19 |
|
|
Ответов: 758
Рейтинг: 112
|
|||
|
Выкладываю окончательный вариант
code_34393.txt Леонид писал(а): во-во, по линиям сравнивать гораздо быстрееЛеонид писал(а): Но абсолютное совпадение может и не сработать, а если искать "похожесть", залезешь в такие дебри, что и никакого терпения не хватит результата дождатьсяБез проблем можно прицепить прозрачность какого-то цвета на подкартинке и поиск по монохромному контуру подкартинки, но мне пока хватит и так как есть |
|||
| карма: 1 |
| ||
| файлы: 1 | code_34393.txt [5.4KB] [348] |
|
Ответов: 8974
Рейтинг: 824
|
|||
|
miver, насколько помню выкладывал сравнение картинок: приводил к одному размеру, загонял в Stream и сравнивал по байтам Пирсоном:
|
|||
| карма: 19 |
| ||
| файлы: 3 | Сравнение1.jpg [32.7KB] [737], Сравнение2.jpg [32.2KB] [691], code_34398.txt [7.5KB] [376] |
|
Ответов: 758
Рейтинг: 112
|
|||
|
Леонид, А к поиску картинки это какое отношение имеет
|
|||
| карма: 1 |
|
|
Ответов: 8974
Рейтинг: 824
|
|||
|
miver, так в поиске и призводится сравнение искомой картинки с частью другой, и сравнение самая важная часть поиска, а уж перебор координат начала -- необходимая часть
|
|||
| карма: 19 |
|
|
Ответов: 758
Рейтинг: 112
|
|||
|
Леонид, Это конечно не Пирсон, но на мой взгляд получилось хорошо
Поиск наилучшего совпадения code_34400.txt Поиск с ограничением по ошибке. Сохранил скриншот в .jpg с 50% качеством scrnfind.rar |
|||
| карма: 1 |
| ||
| файлы: 2 | code_34400.txt [13.9KB] [3451], scrnfind.rar [28.2KB] [495] | ||
| Голосовали: | Леонид |
|
Ответов: 327
Рейтинг: 5
|
|||
|
Вы что-то далеко ушли)) Изначально имелось ввиду "тупое" нажатие кнопки, ну и чтобы это работало без фокуса для 3D игр.
Самое обидное, я знаю что для WoW это реально, уже давненько существует программа "WoW-Loop", она без проблем нажимает кнопки от 0 до 9. Обидно что нельзя запихнуть любой exe файл в хиасм, и чтобы сразу в виде схемы рисовалась работа программы)) P.S. Мне кажется, что отслеживать состояние(или поиск кнопки) в игре по картинке - это извращенство. |
|||
| карма: 0 |
|
|
Ответов: 8974
Рейтинг: 824
|
|||
|
miver, замечательно!
knoot0279, Боян писал(а): ..Растекашется мыслию по древу..miver писал(а): ..Это конечно не Пирсон.. |
|||
| карма: 19 |
| ||
| файлы: 2 | Нашла.jpg [25.2KB] [617], Не_нашла.jpg [11.9KB] [689] |
|
Ответов: 327
Рейтинг: 5
|
|||
|
нашел пример на делфи. вот не знаю... будет без фокуса работать или нет, в примере не отправляется окну, а просто нажимается.
можно ли это переиначить под хиасм и с отправкой окну, а не тупой долбежкой куда ни попадя? |
|||
| карма: 0 |
|
|
Разработчик
Ответов: 26322
Рейтинг: 2147
|
|||
|
knoot0279 писал(а): можно ли это переиначить под хиасмМежду прочим, компонент KeyEvent использует именно функцию keybd_event |
|||
| карма: 22 |
|
|
Ответов: 4671
Рейтинг: 767
|
|||
|
Попробуйте в DirectX приложениях: send input demo.sha
Я в одной игре проверил - работает. Но не знаю, точно ли она через DirectInput получает ввод. [offtop]Нюанс: для того, чтобы вводить заглавные буквы, нужно предварительно зажимать Shift[/offtop] |
|||
| карма: 26 |
|
|
Ответов: 758
Рейтинг: 112
|
|||
|
knoot0279 писал(а): Изначально имелось ввиду "тупое" нажатие кнопки, ну и чтобы это работало без фокуса для 3D игр.knoot0279 писал(а): Мне кажется, что отслеживать состояние(или поиск кнопки) в игре по картинке - это извращенство. |
|||
| карма: 1 |
|