Agent_Cent |
Отправлено: 18 Июля, 2021 - 13:37:27
|
Прохожий
Покинул форум
Сообщений всего: 22
Дата рег-ции: Июль 2021
Репутация: 0
|
Для поиска изображения делаю вот такую картинку (Закрашенное жёлтым)(для просмотра ссылки Вам необходимо авторизоваться) и вот что нужно определить(для просмотра ссылки Вам необходимо авторизоваться) После включения KIBOR и анимации этого изображения на экране оно не реагирует и бездействует.
Может кто знает в чём проблема или как найти это изображение другим путём ?
UPD
Изображение Image_2 является темой проблемы.
win w=window ("NoxPlayer1 Основа", -1, -1, -1, 1526, 900, -1);
if (w==0){messagebox ("Нет изображения"); goto er;}
activate(w);
pause(1000);
int Image_0[11][8];
if (load_images()==-1){messagebox ("Нету"); goto er;}
int Image_2[86][24];
if (load_images2()==-1){messagebox ("Где?"); goto er;}
Возвращение на локу когда помер();
Если всё зафармил();
er:;
function Возвращение на локу когда помер()
{
int x, y;
while(findimage(1, #Image_0[0][0], -1, #x, #y, 0, 0, w.width, w.height, w)==0)sleep(1000);
key(32);
sleep(500);
}
function Если всё зафармил()
{
int x, y;
while(findimage(1, #Image_2[0][0], -1, #x, #y, 0, 0, w.width, w.height,w)==0)sleep(50);
key (84);
sleep (330000);
}
function load_images()
{
if (loadimage (#Image_0[0][0], "C:\Users\Никита\Desktop\Image_0.bmp")<1) return -1;
return 1;
}
function load_images2()
{
if (loadimage (#Image_2[0][0], "C:\Users\Никита\Desktop\Image_2.bmp")<1) return -1;
return 1;
} |
|
|
Zireael |
Отправлено: 18 Июля, 2021 - 13:45:13
|
Эксперт
Покинул форум
Сообщений всего: 4459
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Может кто знает в чём проблема или как найти это изображение другим путём ?
1. Использовать расширенный вариант findimage. Можно указать параметры точности поиска и отклонение в цвете.
2. Использовать readtext.
Цитата: Возвращение на локу когда помер();
Имя функции не может содержать пробелы.(Отредактировано автором: 18 Июля, 2021 - 13:53:35) |
|
|
Zireael |
Отправлено: 18 Июля, 2021 - 14:31:00
|
Эксперт
Покинул форум
Сообщений всего: 4459
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Какая команда отвечает за параметры точности поиска и отклонения в цвете ?
Поиск изображений на экране.
Прочитайте описании функции findimage и посмотрите примеры.
Цитата: Функцию findimage так же можно использовать для поиска изображений имеющих отклонения цветов от исходного изображения, или по неполному (к примеру частично перекрытому другим изображением). В этом случае findimage принимает 17 параметров:
findimage(1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, 1366, 768, Красный_меньше_на, Красный_больше_на, Зеленый_меньше_на, Зеленый_больше_на, Синий_меньше_на, Синий_больше_на, Процент_совпадений_достаточный_для_идентификации, флаг_не_искать_в_области_где_найдено, -1);
Цитата: Слабо понял зачем нужен readtext.
Можно вызвать эту функции и потом сравнить распознанный текст. |
|
|
Val_027 |
Отправлено: 18 Июля, 2021 - 14:46:26
|
Участник
Покинул форум
Сообщений всего: 114
Дата рег-ции: Февр. 2020
Репутация: 0
|
Zireael пишет: (findimage(1, #Image_2[0][0], -1, #x, #y, 0, 0, w.width, w.
сложно как то все
вот простой пример для поиска
int G_NAGR[25][6]; loadimage(#G_NAGR[0][0], "D:\2\М\G_NAGR.bmp");
// сперва нужен рисунок который ищем в д сл / G_NAGR.bmp /
Textout(1,547,710," ИЩЕМ РИСУНОК ",65280,255,"Arial",-24,0,0,0,0,0,0,0);
if(findimage(1,#G_NAGR[0][0],0,#X,#Y,0,0,1920,1050,-1)!=0)
{Textout(1,547,710,"НАШЛИ",65280,255,"Arial",-24,0,0,0,0,0,0,0);
mousemove(X,Y);sleep(3000);}
// mousemove(X,Y); курсором уткнеться в него если нашла рис и текстом на экране
//подскажет а потом уже остальные танцы с бубном
(Добавление)
Val_027 пишет: Красный_меньше_на, Красный_больше
лучше чтоб рисунок или его отдельные фрагменты всегда были на экране неизменны
делаем скан кибором включаем динамику вырезаем сохраняем правим (для просмотра ссылки Вам необходимо авторизоваться) рекомендую само то |
|
|
Agent_Cent |
Отправлено: 18 Июля, 2021 - 15:27:31
|
Прохожий
Покинул форум
Сообщений всего: 22
Дата рег-ции: Июль 2021
Репутация: 0
|
Zireael, спасибо !
Код не работал вообще пока не поставил его выше.
Но теперь встал вопрос как сделать так чтоб они оба просматривались и когда один из них был найден он начинал свою работу ?
win w=window ("NoxPlayer1 Основа", -1, -1, -1, 1526, 900, -1);
if (w==0){messagebox ("Нет изображения"); goto er;}
activate(w);
pause(1000);
int Image_0[11][8];
if (load_images()==-1){messagebox ("Нету"); goto er;}
int Image_2[86][30];
if (load_images2()==-1){messagebox ("Где?"); goto er;}
Если_всё_зафармил();
Возвращение_на_локу_когда_помер();
er:;
function Если_всё_зафармил()
{
int x, y;
while(findimage(1, #Image_2[0][0], 0, #x, #y, 0, 0, w.width, w.height, 1, 1, 1, 1, 1, 1, 86, 1, w)==0)sleep(100);
key (84);
sleep (330000);
}
function Возвращение_на_локу_когда_помер()
{
int x, y;
while(findimage(1, #Image_0[0][0], -1, #x, #y, 0, 0, w.width, w.height, w)==0)sleep(1000);
key(32);
sleep(500);
}
function load_images2()
{
if (loadimage (#Image_2[0][0], "C:\Users\Никита\Desktop\Image_2.bmp")<1) return -1;
return 1;
}
function load_images()
{
if (loadimage (#Image_0[0][0], "C:\Users\Никита\Desktop\Image_0.bmp")<1) return -1;
return 1;
} |
|
|
Zireael |
Отправлено: 18 Июля, 2021 - 15:49:52
|
Эксперт
Покинул форум
Сообщений всего: 4459
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: как сделать так чтоб они оба просматривались и когда один из них был найден он начинал свою работу ?
Примерно так:
CODE:loop() // бесконечный цикл
{
if(findimage(1, #Image_2[0][0], 0, #x, #y, 0, 0, w.width, w.height, 1, 1, 1, 1, 1, 1, 86, 1, w)==1) // если картинка найдена
{
key(84);
sleep (330000);
break; // выход из цикла
}
if(findimage(1, #Image_0[0][0], -1, #x, #y, 0, 0, w.width, w.height, w)==1) // если картинка найдена
{
key(32);
sleep(500);
break; // выход из цикла
}
sleep(100);
}
// дальнейшие действия |
|
|
Zireael |
Отправлено: 18 Июля, 2021 - 16:52:47
|
Эксперт
Покинул форум
Сообщений всего: 4459
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Нужен код, который выдаёт такую ошибку.
CODE:win w=window ("NoxPlayer1 Основа", -1, -1, -1, 1526, 900, -1);
if (w==0){messagebox ("Нет изображения"); goto er;}
activate(w);
pause(1000);
int Image_0[11][8];
if (load_images()==-1){messagebox ("Нету"); goto er;}
int Image_2[86][30];
if (load_images2()==-1){messagebox ("Где?"); goto er;}
int x, y;
loop() // бесконечный цикл
{
if(findimage(1, #Image_2[0][0], 0, #x, #y, 0, 0, w.width, w.height, 1, 1, 1, 1, 1, 1, 86, 1, w)==1) // если картинка найдена
{
key(84);
sleep (330000);
break; // выход из цикла
}
if(findimage(1, #Image_0[0][0], -1, #x, #y, 0, 0, w.width, w.height, w)==1) // если картинка найдена
{
key(32);
sleep(500);
break; // выход из цикла
}
sleep(100);
}
messagebox("Вышли из цикла");
er:;
function load_images2()
{
if (loadimage (#Image_2[0][0], "C:\Users\Никита\Desktop\Image_2.bmp")<1) return -1;
return 1;
}
function load_images()
{
if (loadimage (#Image_0[0][0], "C:\Users\Никита\Desktop\Image_0.bmp")<1) return -1;
return 1;
} |
|
|
|