Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 2.09 Сравнение цвета пикселя по приблизительному цвету. Поиск пикселей определенного цвета.

Страниц (5): « 1 2 [3] 4 5 »
 

21. Dantes3000 - 27 Сентября, 2018 - 02:34:26 - перейти к сообщению
Kibor , хорошо, а если мне надо полоску в 1 пиксель проверять?
22. Kibor - 27 Сентября, 2018 - 02:52:35 - перейти к сообщению
Надо сделать зону в 1 пиксель, а не линию в 0
23. Kibor - 24 Апреля, 2019 - 04:51:52 - перейти к сообщению
Добавил возможность указать разбежность цвета в findcolor

Синтаксис:
findcolor(-1, #x[0],#y[0], стартx, стартy, финишx, финишy, color, Красный_меньше_на, Красный_больше_на, Зеленый_меньше_на, Зеленый_больше_на, Синий_меньше_на, Синий_больше_на, -1);
24. Overdose5530 - 14 Октября, 2020 - 13:43:13 - перейти к сообщению
здравствуйте .. на древнем ноуте виндовс 7 не работает findcolor .. код писал на другом ноуте .. кароче на любом другом ноуте с вин 10 все ок на этом древнем орехе 0.. хз что там в настройках винды поправить .. Качество цветопередачи пишет 32 бит ..
(Добавление)
все .. по моему это был сдвиг не смотря на то что я использую moveclient
25. lavpochta - 17 Февраля, 2021 - 15:13:09 - перейти к сообщению
[quote=Kibor]Функция scanpixel сравнивает введенный цвет с цветом пикселя в веденных координатах ориентируясь на разбежности в цветах RGB.

Синтаксис:
scanpixel(КоординатаX, КоординатаY, цвет_в_int, Красный_меньше_на, Красный_больше_на, Зеленый_меньше_на, Зеленый_больше_на, Синий_меньше_на, Синий_больше_на, указатель_на _окно)

Так же возможно сравнивать цвет пикселя загруженного ранее изображения или полученного скриншота в двухмерный массив int
CODE:
int SCREEN[500][700];
//...............
int k=scanpixel(200, 125, 35436455, 15, 15, 15, 15, 15, 15, #SCREEN[0][0]);
messagebox (k);


А в findcolor может вместо указателя на окно принимать двухмерный массив?
26. Zireael - 17 Февраля, 2021 - 16:57:59 - перейти к сообщению
 Цитата:
А в findcolor может вместо указателя на окно принимать двухмерный массив?

Нет. Хотя такую возможность добавить недолго.
27. lavpochta - 17 Февраля, 2021 - 23:44:32 - перейти к сообщению
 Zireael пишет:
 Цитата:
А в findcolor может вместо указателя на окно принимать двухмерный массив?

Нет. Хотя такую возможность добавить недолго.


Решаю задачу по распознаванию определённого цвета и его местоположения в изображении в виде полоски полученной функцией screen. Цвет перемещается внутри этой полоски скачками, поэтому хотел сделать снимок полоски в память и отладится в статистике, но по ходу выполнения программы. Затем хотел распознать местоположение другого цвета в тот же момент времени. Без возможности сканировать цвет в изображении в памяти это невозможно.

Можно реализовать принятие массива в findcolor? Пожалуйста...
28. Zireael - 18 Февраля, 2021 - 02:20:36 - перейти к сообщению
Используйте findimage, можно искать картинку в 1 пиксель нужного цвета.
CODE:
int my_image[1][1];
my_image[0][0] = 5187586; // цвет пикселя, который нужно найти

int x, y; // переменные для findimage
int image[1920][1080]; // массив для скрина


screen (#image[0][0], 0, 0, 1920, 1080, -1);

// поиск пикселя на скрине
if(findimage(1, #my_image[0][0], -1, #x, #y, 0, 0, 1920, 1080, #image[0][0]))
{
messagebox(format(x)+" "+format(y)); // координаты пикселя
}
else messagebox("Не найдено");
29. lavpochta - 18 Февраля, 2021 - 02:34:12 - перейти к сообщению
Ага, спасибо!
30. Kibor - 19 Марта, 2021 - 06:26:27 - перейти к сообщению
Доработал findcolor
Появилась возможность искать цвет пикселя на загруженном ранее изображение или полученном скриншоте в двухмерный массив int

CODE:
int SCREEN[500][700];
//...............
int k=findcolor(-1, #x[0],#y[0], стартx, стартy, финишx, финишy, color, #SCREEN[0][0]);
messagebox (k);


CODE:
int SCREEN[500][700];
//...............
int k=findcolor(-1, #x[0],#y[0], стартx, стартy, финишx, финишy, color, Красный_меньше_на, Красный_больше_на, Зеленый_меньше_на, Зеленый_больше_на, Синий_меньше_на, Синий_больше_на, #SCREEN[0][0]);
messagebox (k);

Powered by ExBB FM 1.0 Final