Что нового

Поиск картинки на экране

eIIIkuHkoT

Новичок
Сообщения
7
Репутация
0
Всем доброго времени суток. Задача заключается в том что на экране нужно найти картинку которая хранится в файле 123.bmp В другой программе есть такая функция как она делает скрин экрана и анализирует этот скрин на наличие нужного элемента, в данном случае я поковырял справку на наличие search и img и image ничего подходящего я не нашел. Подскажите плиз как можно реализовать данную задачу?
 

xishnik

Новичок
Сообщения
51
Репутация
0
Код:
_imagesearch("123.bmp", 1, $x, $y, 0)

Только сперва найди UDF ImageSearch. Там ещё будет dll файл, его храни в папке со скриптом
 
Автор
E

eIIIkuHkoT

Новичок
Сообщения
7
Репутация
0
Извиняюсь за глупые вопросы, но что такое UDF и где его найти?
 
Автор
E

eIIIkuHkoT

Новичок
Сообщения
7
Репутация
0
Спасибо все работает.


Добавлено:
Сообщение автоматически объединено:

Как оказалось в данной ситуации ищется точная копия куска картинки, а мне нужно чтоб было приблизительно. Есть скриншот объекта с экрана который двигается по фону но сам остается неизменным. Точность совпадения в % есть у этой UDF?
 
A

Alofa

Гость
eIIIkuHkoT придется читать:
http://autoit-script.ru/index.php?topic=21329.msg125642#msg125642
 
Автор
E

eIIIkuHkoT

Новичок
Сообщения
7
Репутация
0
_ImageSearch("123.bmp",1,$x1,$y1,0) я так понимаю 0 это и есть толерантность? допустимая погрешность?
 
Автор
E

eIIIkuHkoT

Новичок
Сообщения
7
Репутация
0
В общем че то нифига не получается. Значение толерантности начиная с 0 и до 158 вообще никаких телодвижений нет, со 159 до 255 объекты находит на экране но вообще которые даже рядом не стояли с искомым куском картинки.


Добавлено:
Сообщение автоматически объединено:

Сейчас возможно модераторы будут ругатся...

В общем после без результатного поиска по форуму в поисках решения моей задачи, немного подробнее объясню что требуется, может у кого появятся какие идеи.

Браузерная флеш игра, по локации перемещаются разные объекты, вот нужно кликнуть мышкой по конкретному объекту. Есть у кого идеи как это сделать?


Добавлено:
Сообщение автоматически объединено:

Пока что нашел только один выход, это поиск обекта не по всей его картинки целиком а по маленькой его части примерно 3х3 пикселя. В этом случае вроде работает, ищет, находит. Пока что проверил только на одном объекте.

Может у кого то все таки будут лучше идеи?
 
Автор
E

eIIIkuHkoT

Новичок
Сообщения
7
Репутация
0
Народ подскажите плизз в чем у меня проблема? Написал скрипт вот с этой штукой #include <ImageSearch.au3>. Все работало, все находило и кликало. Ничего не изменял, просто установил полную версию SciTE для более удобной отладки скрипта и у меня перестал работать скрипт вываливает ошибку

"C:\Program Files (x86)\AutoIt3\Include\ImageSearch.au3" (60) : ==> Subscript used on non-accessible variable.:
If $result[0] = "0" Then Return 0
If $result^ ERROR
->20:46:21 AutoIt3.exe ended.rc:1
+>20:46:21 AutoIt3Wrapper Finished.
>Exit code: 1 Time: 2.256


Добавлено:
Сообщение автоматически объединено:

Порылся по форуму, рекомендуют добавить строку If Not IsArray($result) Then Return 0, после чего ошибка пропадает но и скрипт перестает работать =(
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
eIIIkuHkoT сказал(а):
просто установил полную версию SciTE для более удобной отладки скрипта и у меня перестал работать скрипт вываливает ошибку

"C:\Program Files (x86)\AutoIt3\Include\ImageSearch.au3" (60) : ==> Subscript used on non-accessible variable.:
If $result[0] = "0" Then Return 0
If $result^ ERROR
Код:
#AutoIt3Wrapper_Run_AU3Check=n

А вот эта строка (самая первая в начале скрипта) не поможет?
 
Автор
E

eIIIkuHkoT

Новичок
Сообщения
7
Репутация
0
К сожалению не помогло. Не работает даже на самом простом примере.
Код:
#include <ImageSearch.au3>

HotKeySet("{F9}","Start")
HotKeySet("{F10}","Stop")

Local $x1 = 0, $y1 = 0

while 1
	sleep(1000)
WEnd

Func Start()
	$result = _ImageSearch("Test.bmp",1,$x1,$y1,50)
	if $result = 1 Then
		MouseClick("left",$x1,$y1,1,1)
		EndIf
EndFunc

func stop()
	Exit
EndFunc


Ничего не понимаю. На SciTE Lite все работало как только поставил полную версию все как топором отрубило.


Добавлено:
Сообщение автоматически объединено:

Удалил Autoit и SciTE установил по новой Autoit, все скрипты работают отлично. В чем прикол?
 

weweWe45s

Новичок
Сообщения
36
Репутация
1
было похожее с 32х - 64х разрядными версиями :scratch:
 

Werewolfez

Новичок
Сообщения
2
Репутация
0
Даже если не знаешь английского языка, один фиг всё поймёшь youtube.com/watch?v=Hy-va-155HY&list=PLy9pYSa4f-d4g9wtyaxhnG_LV4iAKgnnX&index=22
пользуюсь сам и тебе рекомендую. Также на канале пишет скрипты как раз для флеш игр.
 
Верх