1) Не играет роли. Приведет не к ускорению, а к тому что изображение может не найтись.
2) Это не является большой нагрузкой и в большинстве случаев обрабатывается быстро. Все зависит от того какое именно быстродействие надо. Обработка видео в реальном режиме?
3) Вопрос не ясен. Нужен код.
Самой первой оптимизацией при поиске изображений является ограничивание области поиска. Так же если известно заранее что есть только одно изображение, то первый параметр в findimage ставить в 1. Это для того что бы как нашлось изображение функция завершалась, а не продолжала скан экрана (все равно же больше не будет такого изображения).
Вот к примеру тест скрипт, который ищет вашу аваторку по части ее изображения.
Сохранить этот рисунок на диск С в .bmp:
Открыть эту страницу во весь экран браузера. Аватор должен быть виден.
Запускаем скрипт:
CODE:int Image_0[28][15];loadimage (#Image_0[0][0], "C:\Image_0.bmp");
int t;
double t1;
int x, y;
int ex, ey, col;
int k, k1;
getdisplay(col, ex, ey);
sleep(1000);
k=0;k1=0;
t=gettime();
a: k1=k1+findimage(1, #Image_0[0][0], -1, #x, #y, 0, 0, ex, ey, -1);
k++;
if (k<100) goto a;
t1=gettime()-t;
messagebox("Весь экран: Поиск осуществлен 100 раз. Рисунок найден "+ format(k1) +" раз за "+ format(t1/1000) +" секунд.");
sleep(1000);
k=0;k1=0;
t=gettime();
a5: k1=k1+findimage(1, #Image_0[0][0], -1, #x, #y, 0, 0, 215, ey, -1);
k++;
if (k<100) goto a5;
t1=gettime()-t;
messagebox("Часть экрана: Поиск осуществлен 100 раз. Рисунок найден "+ format(k1) +" раз за "+ format(t1/1000) +" секунд.");
Первый поиск происходит по всему экрану. На моем ноуте функция срабатывает 100 раз примерно за 5 секунд. 20 раз в секунду.
Второй поиск по части экрана. 100 раз сканируется за 1.7 секунды. 58 раз за секунду.
Кроме функции поиска еще отрабатывается дополнительный код...
Проверьте ваш результат.
Тут быстрее всего надо оптимизировать сам код скрипта... Больше без кода сказать не могу. |