Что нового

Поиск изображения и все, что с этим связанно

mr.Gbabak

Осваивающий
Сообщения
257
Репутация
24
Господа, сразу извиняюсь, знаю, что тема заезженна, но хотелось бы систематизировать, все что есть на форуме по вопросу поиска изображений.
В, частности касаемой библиотеки ImageSearch, все понятно, но также есть средства поиска через WinAPI (попрошу поправить если я ошибаюсь), и так называемого поиска через BitMap вот тут и возникает много вопросов и непонятностей.
Наиболее доходчивый пример принес Yashied в теме http://autoit-script.ru/index.php?topic=7143.msg49174#msg49174, но как-то я не сообразил, как сделать поиск по картинке из файла?
OffTopic:
Возможно я ошибся разделом форума, тогда перенесите.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Есть еще BmpSearch.au3
Из файла ищет так:
Код:
$hBmp1 = _GDIPlus_BitmapCreateFromFile('recycle_action.bmp')
$hImg1 = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBmp1)
		$hSource = _ScreenCapture_CaptureWnd('', $hWnd)
		$aCoords = _BmpSearch($hSource, $hImg1, ограничение на количество найденных изображений)
_ArrayDisplay($aCoords )

Работает быстро, не использует библиотеки, написана на ассемблере.
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
Скачал BmpSearch.au3. Требует библиотеку WinAPIGdi.au3. Не смог найти. Может кто-нибудь кинуть ссылку?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
edyapd [?]
Требует библиотеку WinAPIGdi.au3
Если у Вас версия 3.3.6.1, как указано в профиле, то Вам надо скачать соответствующую версию WinAPIEx.au3 (см. мою подпись) и поменять WinAPIGdi.au3 на нее. Если не будет работать (не смотрел BmpSearch.au3), надо будет обновлять AutoIt.
 
Автор
M

mr.Gbabak

Осваивающий
Сообщения
257
Репутация
24
А может, кто нибудь подскажет, как сделать, чтоб был допуск по оттенкам картинки?
Т.е. чтоб отклонение от эталона можно было задавать?
 

Gaminator

Новичок
Сообщения
1
Репутация
0
mr.Gbabak сказал(а):
А может, кто нибудь подскажет, как сделать, чтоб был допуск по оттенкам картинки?
Т.е. чтоб отклонение от эталона можно было задавать?

присоединяюсь к автору вопроса.
В моем случае текст(бело-серый, много градаций), который необходимо боту найти на экране, движется в рандомном направлении, написан с небольшой (практически не заметной глазу) полупрозрачностью, на очень детальном фоне (космос, звезды, в том числе того же цвета, что и текст).
Поэтому, использование известного мне pixelsearch не подходит для выполнения задачи. Есть подозрение, что мог бы помочь BmpSearch, но он ищет слишком точно, необходимо задать отклонение...
Знаний не хватает пока, чтобы понять, где и как задать это отклонение. буду благодарен за помощь
 

tarhitay

Новичок
Сообщения
18
Репутация
0
Используйте библиотеку ImageSearch.
Функция _ImageSearch(здесь путь к файлу - образцу (только bmp), здесь 0 или 1 (соответственно первый пиксель или центр паттерна), здесь отдает координату X, здесь Y, А здесь вы задаете допуск по цвету)
Так как допуск задается в отрезке 0-255, логично предположить, что это rgb адаптация. +-значение. Должно работать.
У меня по крайней мере на полупрозрачном изображении нормально отрабатывает.
Для себя писал кусок кода по типу ImageSearch, но в изображении-образце делал возможность использования слепых зон, которые библиотека не обрабатывает. Делалось для не прямоугольных изображений.
 
Верх