0 / 0 / 0
Регистрация: 24.07.2022
Сообщений: 10
|
|
1 | |
Распознавание изображений на экране24.07.2022, 09:46. Показов 3348. Ответов 39
Метки нет (Все метки)
Помогите начинающему Дельфиводу - как распознавать изображения на экране? В частности нужно распознать кнопку на экране и кликнуть по ней.
0
|
24.07.2022, 09:46 | |
Ответы с готовыми решениями:
39
Распознавание чисел на экране Распознавание изображений Распознавание изображений Распознавание изображений Распознавание происходящего на экране |
Модератор
3635 / 2153 / 762
Регистрация: 15.11.2015
Сообщений: 8,640
|
|
24.07.2022, 11:51 | 3 |
CoolDel, вот в этой теме Побитовые операции с памятью искали небольшую картинку внутри большой, поиск по всей большой картинке.
0
|
Модератор
3635 / 2153 / 762
Регистрация: 15.11.2015
Сообщений: 8,640
|
|
24.07.2022, 13:50 | 5 |
Verevkin, человек хочет пойти сложным путём. Зачем его сбивать?
0
|
11 / 11 / 0
Регистрация: 29.06.2013
Сообщений: 93
|
|
24.07.2022, 14:40 | 7 |
"ломать капчу делфи"
0
|
53 / 48 / 5
Регистрация: 18.11.2018
Сообщений: 265
|
|
24.07.2022, 18:37 | 8 |
Ох был я там...
Понравилось. CoolDel, Задача сильно творческая, вариантов решения там штук 5 минимум есть. 1 Точное совпадение, тут Побитовые операции с памятью Хорошо всё описано,но для начинающего сложновато.(Имею в виду ASM реализацию) 2 Примерное совпадение, тут есть два подварианта минимум. 2.а Искать особые точки (SIFT/SURF) 2.b Поиск стабильных областей на изображении (MSER) Оба варианта вычислительно интенсивные, и делать их на процессоре имеет смысл только в образовательных целях. В играх не получится отслеживать быстрые объекты. ... В общем тут ещё должна быть простыня на 150 строк , но мне лень. Для каждой конкретной задачи лучше искать своё, творческое решение, к примеру В вашем случае не самый тяжёлый вариант. Заскринить кнопку, вычитать с неё массив цветов. Построить 8-ричное дерево цветов. Задать предполагаемые размеры кнопки(чтобы можно было искать на нескольких разрешениях экранов) И далее, при скриншоте экрана пробегать по массиву цветов и учитывать только те что есть в дереве Далее, скользящее окно(размера кнопки) Если в окне >= к примеру 0,75 похожих цветов то это кнопка. Напомню играть параметрами (размер окна,процент совпадения) можно для каждого своего случая индивидуально. И да я сам это только собираюсь писать ещё К этому всему добавить пяток проверок на границы и чуть причесать будет сносно работать. Можно не трогать octree а сделать поиск максимально "частого" цвета в кнопке , тут тогда будет лучше работать не с RGB а с HSL. Всё, харош, а то я начинаю приблежаться к тем заветным 150 строкам Добавлено через 12 минут https://www.3delite.hu/Object%... brary.html Тут готовая либа. Потрогать покрутить.Сам не пользовался, но делает примерно то что задумано. Из интересного работа на видеокарте(пахнет хорошим ускорением) На деле же 12 ядерный проц в 1,7 раза быстрее чем полупрофессиональная видеокарта T400 В любом случае универсальные средства всегда медленней частных решений.
0
|
0 / 0 / 0
Регистрация: 24.07.2022
Сообщений: 10
|
|
26.07.2022, 20:41 [ТС] | 9 |
очень жаль, что простого решения нет. хотелось бы библиотеку вроде opencv или pyautogui как в python
0
|
53 / 48 / 5
Регистрация: 18.11.2018
Сообщений: 265
|
|
26.07.2022, 20:45 | 10 |
Чтобы полноценно с библиотеками работать, было бы очень не плохо понимать алгоритмы изнутри.
Как следствие более точно и правильно выбирать области применения.
0
|
0 / 0 / 0
Регистрация: 24.07.2022
Сообщений: 10
|
|
30.07.2022, 14:33 [ТС] | 12 |
Короче программисты тут диванные. По делу высказался только один пользователь "Иван Ёжик", за, что ему и спасибо. Остальные - лишь бы ляпнуть языком и написать хоть бы, что.
0
|
53 / 48 / 5
Регистрация: 18.11.2018
Сообщений: 265
|
|
30.07.2022, 19:49 | 14 |
CoolDel, Я тут самый диванный.
я настолько ленивый что код совсем не пишу https://youtu.be/to7THc2W4uA Мои эксперименты двухлетней давности... Добавлено через 3 часа 45 минут Ещё немного творчества по распознаванию самым простым методом. Код взят из сети и головы... доведён до нужной степени приемлемости, это опять старые эксперименты, еле нашёл в закромах.
2
|
53 / 48 / 5
Регистрация: 18.11.2018
Сообщений: 265
|
|
30.07.2022, 20:02 | 16 |
Кстати во всяких Телеграмах где движок рисования Qt , там нет хендлов кнопки например.
Ну и тыкать кнопки это не так интересно как ковырятся в алгоритмах. Ну теперь мой эксперимент сам играет таки в "три в ряд", но это не интересно показывать, отрисовки отключены для ещё большего быстродействия...
0
|
0 / 0 / 0
Регистрация: 24.07.2022
Сообщений: 10
|
|
03.08.2022, 14:05 [ТС] | 18 |
Я раскололся в самом начале темы. Мне нужно распознать кнопку не по хэндлу, а основываясь лишь на графической составляющей. Я конечно упростил, мне на самом деле не одну кнопку и не только кнопку нужно распознать. Мне необходимо распознавать ряд элементов пользовательского интерфейса служебной базы данных и взаимодействовать с ним по необходимости. Я неопытный программист (и по профессии вовсе не программист), но Delphi мне ближе чем Python. Я наивно полагал, что в Delphi есть компонент или библиотека для распознавания графики. Вот к примеру на Пайтоне распознавание и клик по элементу интерфейса звучит в одну строку вот так:
pyautogui.click(pyautogui.locateOnScreen('pics/test.png', confidence = 0.95)) Для работы этой строки нужны всего две библиотеки: pyautogui и opencv. Если в Delphi необходимо писать много строк кода, то к сожалению мне это не подходит. На пайтоне необходимый код я по сути написал, но для собственного удобства мне необходимо прилепить к программе основное окно и несколько дополнительных для контроля работы программы в процессе исполнения, а по определенным причинам мне это удобнее\привычнее сделать на Delphi. По этому и стал вопрос - будет ли мне быстрее переписать программу на Delphi.
0
|
53 / 48 / 5
Регистрация: 18.11.2018
Сообщений: 265
|
||||||
03.08.2022, 14:18 | 20 | |||||
Если это всё что вам нужно то делается написанием в Delphi трёх функций
1 скриншот . 2 поиск 3 клик. Один раз. 50 строк мне кажется. Я бы вообще за 3 минуты из старых исходников собрал...Но у меня нету сейчас делфи на компуктере. И потом постоянно вызывать их именно таким образом в одну строку.
Вообще от кнопки зависит, если она сложная и переливающаяся+ форму меняет то и CV не сможет помочь
0
|
03.08.2022, 14:18 | |
03.08.2022, 14:18 | |
Помогаю со студенческими работами здесь
20
Распознавание картинок на экране Распознавание цифр на экране Нейросетевое распознавание изображений Распознавание голоса на любом экране Python распознавание изображения на экране Обработка изображений (распознавание текста) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |