Нуждаюсь в примере. Поиск массива картинок по шаблону или поиск следующей картинки после нахождения
Пример. Есть набор кнопок. Необходимо найти их все по очереди.
1. oleg056 - 20 Февраля, 2019 - 11:10:23 - перейти к сообщению
2. Zireael - 20 Февраля, 2019 - 17:26:40 - перейти к сообщению
Цитата:
Пример. Есть набор кнопок. Необходимо найти их все по очереди.
Подробнее опишите задачу. Этого не достаточно чтобы дать конкретный ответ.
Один из возможных вариантов:
CODE:
int image[3][100][100]; // массив для 3х картинок размером не более 100*100 пикселей
string name[3]={"Image_0", "Image_1", "Image_2"}; // имена картинок
string path="C:\images\"; // путь к картинкам
int x, y; // сюда запишутся координаты найденной картинки
int display_color, display_width, display_height;
getdisplay(display_color, display_width, display_height); // получить разрешение экрана
for(int i=0; i<sizearray(name); i++)loadimage(#image[i][0][0], path+name[i]+".bmp"); // загрузка картинок в массив
for(int j=0; j<sizearray(name); j++) // цикл для поиска картинок
{
messagebox("Ищем картинку "+name[j]);
if(findimage(1, #image[j][0][0], -1, #x, #y, 0, 0, display_width, display_height, -1)>0) // если нашлась
{
messagebox("Найдена картинка "+name[j]);
mousemove(x, y); // навести на неё курсор
}
else
{
messagebox("Картинка "+name[j]+" не найдена");
}
}
string name[3]={"Image_0", "Image_1", "Image_2"}; // имена картинок
string path="C:\images\"; // путь к картинкам
int x, y; // сюда запишутся координаты найденной картинки
int display_color, display_width, display_height;
getdisplay(display_color, display_width, display_height); // получить разрешение экрана
for(int i=0; i<sizearray(name); i++)loadimage(#image[i][0][0], path+name[i]+".bmp"); // загрузка картинок в массив
for(int j=0; j<sizearray(name); j++) // цикл для поиска картинок
{
messagebox("Ищем картинку "+name[j]);
if(findimage(1, #image[j][0][0], -1, #x, #y, 0, 0, display_width, display_height, -1)>0) // если нашлась
{
messagebox("Найдена картинка "+name[j]);
mousemove(x, y); // навести на неё курсор
}
else
{
messagebox("Картинка "+name[j]+" не найдена");
}
}
3. oleg056 - 21 Февраля, 2019 - 16:51:06 - перейти к сообщению
Шаблон это одна картинка. Найти нужно массив картинок соответствующие шаблону.
К примеру. В игре минер найти все вхождения клеток с помощью шаблона
К примеру. В игре минер найти все вхождения клеток с помощью шаблона
4. Zireael - 21 Февраля, 2019 - 23:52:21 - перейти к сообщению
CODE:
int image[100][100]; // массив для картинки размером не более 100*100
loadimage (#image[0][0], "D:\Kibor2\Image_0.bmp"); // загрузить картинку
int x[512], y[512]; // сюда запишутся координаты найденных картинок
int display_color, display_width, display_height;
getdisplay(display_color, display_width, display_height); // получить разрешение экрана
int z=findimage(sizearray(x), #image[0][0], -1, #x[0], #y[0], 0, 0, display_width, display_height, -1); // поиск
messagebox("Найдено "+format(z));
if(z>0)
{
for(int i=0; i<z; i++) // цикл для всех найденных картинок
{
mousemove(x[i], y[i]); // навести курсор на картинку
sleep(500);
}
}
loadimage (#image[0][0], "D:\Kibor2\Image_0.bmp"); // загрузить картинку
int x[512], y[512]; // сюда запишутся координаты найденных картинок
int display_color, display_width, display_height;
getdisplay(display_color, display_width, display_height); // получить разрешение экрана
int z=findimage(sizearray(x), #image[0][0], -1, #x[0], #y[0], 0, 0, display_width, display_height, -1); // поиск
messagebox("Найдено "+format(z));
if(z>0)
{
for(int i=0; i<z; i++) // цикл для всех найденных картинок
{
mousemove(x[i], y[i]); // навести курсор на картинку
sleep(500);
}
}
Если картинки немного отличаются можно добавить параметры: разбежность в цвете и точность поиска.
5. 007wan - 24 Февраля, 2019 - 03:06:09 - перейти к сообщению
Извините, а как сделать, я не могу. Искал первую картинку - это скроллер страницы(ползунок) и искал вторую картинку - это обычная картинка на самой страницы.
Проблема не в этом, а вычислении: нужно, что бы он опускал/поднимал ползунок страницы в зависимости от того имеет ли картинка №2 заданные координаты и выпрямляет и должно получится так, что бы она была на своем месте, учитывая разрешение экрана. Я свои координаты потом подставлю, хотя я даже не уверен правильный подход использую и манипуляции с мышью я не хочу делать.
(Добавление)
А вообще, что бы не запариваться, можно ли узнать какое значение имеет полоса прокрутки страницы и изменить его?
(Добавление)
Прошу прощения: второе "добавление" не по теме
Проблема не в этом, а вычислении: нужно, что бы он опускал/поднимал ползунок страницы в зависимости от того имеет ли картинка №2 заданные координаты и выпрямляет и должно получится так, что бы она была на своем месте, учитывая разрешение экрана. Я свои координаты потом подставлю, хотя я даже не уверен правильный подход использую и манипуляции с мышью я не хочу делать.
(Добавление)
А вообще, что бы не запариваться, можно ли узнать какое значение имеет полоса прокрутки страницы и изменить его?
(Добавление)
Прошу прощения: второе "добавление" не по теме
6. Zireael - 24 Февраля, 2019 - 09:15:37 - перейти к сообщению
Цитата:
Проблема не в этом, а вычислении: нужно, что бы он опускал/поднимал ползунок страницы в зависимости от того имеет ли картинка №2 заданные координаты
Зажать левую кнопку мыши на скролле и двигать в нужном направлении пока картинка не окажется в нужных координатах, потом отпустить левую кнопку мыши.