|
|
|
Опять Findimage |
|
|
xolost |
29.12.2012, 16:38
|
Expert
Сообщений: 517
Регистрация: 17.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.035
|
Цитата(veiron @ 29.12.2012, 16:41) Почему так происходит. В Findimage указана картинка, пилот ее видит, видит 1 раз другой, а к примеру на 10 он ее уже ни видит. Картинку не трогаю, пилот закрываю и заново запускаю, и он ее опять видит уже, это как то можно исправить. Findimage указывал точность совпадения и 80% и 10%, пока не перезапустишь пилот он ее не видит.
Еще, если пилот долго не видит картинку выскакивает ошибка выполнения скрипта 3315
Скорее всего в твоей картинке присутствует нулевой цвет(черный) - проверь. А потом после некоторой работы скрипта с не нахождением картинки - открой диспетчера задач и посмотри сколько оперативки наело. В итоге наедает 2 гб и выпадает 3315 ошибки, требующая перезагрузки пилота. Решить данную проблему можно уменьшением диапазона поиска. Например ты ищешь от 0 0 до 1000 1000 уменьши например от 300 300 до 500 500 Т.е. ищи её только там, где она по факту может быть. Это баг финдимиджа и им уже занимаются.
|
|
|
|
xolost |
29.12.2012, 17:13
|
Expert
Сообщений: 517
Регистрация: 17.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.035
|
Цитата(veiron @ 29.12.2012, 18:10) Так, что получается где есть этот нулевой цвет пилот будет не правильно работать и сделать ни чего нельзя ? Не все картинки красные и желтые, есть и черные)
Там где есть нулевой цвет и происходит с ним этот баг, то: Или 1) уменьшайте диапазон поиска. (Не верю что на всем всем экране необходимо искать эту картинку). или 2) Играйтесь с картинкой - уменьшайте размер, закрашивайте нулевой цвет(если остаются другие, по которым можно найти картинку). Закрашивать черный - означает закрасить фоном, который при поиске не учитывается.
|
|
|
|
xolost |
29.12.2012, 17:22
|
Expert
Сообщений: 517
Регистрация: 17.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.035
|
Цитата(veiron @ 29.12.2012, 18:17) Этот диапозон стоит, что бы не переписывать скрипты под разные мониторы.
Я понимаю прекрасно. Но, иногда нужно сделать исключения, пока не исправлен баг. Временно можете прописать руками диапазон меньше. Более того, вы можете ещё универсальнее сделать. Сначала найти какой-то элемент на экране статичный (что-то, что всегда находится на определенном расстоянии от того элемента, который вы ищете), и уже от него прибавить расстояние для поиска конечного элемента. Если сложновато и не поняли - скажите, попробую перефразировать. Цитата Это как закрасить фоном? Найти черный пиксель и перекрасить его в другой цвет?
Финдимидж ищет совпадение пикселов не учитывая самый левый, самый верхний пиксел. Именно этот пиксел для финдимиджа считается фоном. Это значит, что если левый верхний пиксел у вас например фиолетовый, то в любом месте картинки все фиолетовые пикселы при поиске учитываться не будут, будут считаться фоном. Т.е. красите левый верхний пискел каким-то цветом и потом все нулевые цвета этим же или прям на пол картинки сразу закрасьте что бы точно черный закрасился без гемороя
|
|
|
|
veiron |
29.12.2012, 17:31
|
Master
Сообщений: 1.264
Регистрация: 22.5.2012 Группа: Пользователи Наличность: 0 Из: Белоруссии
Пользователь №: 14.972
|
Цитата(xolost @ 29.12.2012, 18:22) Я понимаю прекрасно. Но, иногда нужно сделать исключения, пока не исправлен баг. Временно можете прописать руками диапазон меньше. Более того, вы можете ещё универсальнее сделать. Сначала найти какой-то элемент на экране статичный (что-то, что всегда находится на определенном расстоянии от того элемента, который вы ищете), и уже от него прибавить расстояние для поиска конечного элемента. Если сложновато и не поняли - скажите, попробую перефразировать.
Я понял, про что Вы написали. Для меня тогда проще будет прописать диапазон.
|
|
|
|
HowL |
2.1.2013, 8:56
|
Neophyte
Сообщений: 22
Регистрация: 2.1.2013 Группа: Пользователи Наличность: 0
Пользователь №: 15.613
|
Цитата Финдимидж ищет совпадение пикселов не учитывая самый левый, самый верхний пиксел. Именно этот пиксел для финдимиджа считается фоном. Это значит, что если левый верхний пиксел у вас например фиолетовый, то в любом месте картинки все фиолетовые пикселы при поиске учитываться не будут, будут считаться фоном. Т.е. красите левый верхний пискел каким-то цветом и потом все нулевые цвета этим же или прям на пол картинки сразу закрасьте что бы точно черный закрасился без гемороя
А можно ли изменить нулевой цвет на похожий, скажем, 65793 и указать погрешность оттенка ~5-10%? Закрасим левый верхний пиксель каким - нибудь цветом, которого точно нет на экране (бордовым, к примеру), а нулевые цвета на картинке заменим на этот 65793.. Так работать будет?
--------------------
ТЫ еще не ботоводишь?
|
|
|
|
HowL |
2.1.2013, 17:20
|
Neophyte
Сообщений: 22
Регистрация: 2.1.2013 Группа: Пользователи Наличность: 0
Пользователь №: 15.613
|
Цитата Оно, как правило, работает. Просто есть бажок. Просвети же!
--------------------
ТЫ еще не ботоводишь?
|
|
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|