Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 5.07 Добавлен инструмент подбора оптимальных цветов для поиска

Страниц (2): [1] 2 »
 

1. Kibor - 28 Марта, 2016 - 12:50:39 - перейти к сообщению
Добавлен инструмент для подсчета и определения оптимальных цветов пикселей для поиска в функции findheapcolor scanpixel

Находится в вкладке Графика Кибор, в меню правой кнопки мыши.
Использовать так:
1) Делаем снимок с помощью Графики Кибор нужной сцены в игре где есть нужный объект. Надо что бы объект был размера примерно такого какой будет при работе бота.
2) Выделяем не захватывая фон основные части искомого объекта.
3) Нажимаем правую кнопку и выбираем в меню Подбор Цвета
3) Указываем нужные параметры которые будем использовать для разбежности оттенков цветов.
4) Нажимаем Посчитать.
5) Появляются основные цвета которые можно использовать в поиске и их количество. В виде параметров указывать примерно в 20-200 раз меньше количество.
6) Используем их в функциях findheapcolor scanpixel основные цвета.

Пример подготовки поиска изображения Лосяша с мультфильма Смешарики. После подготовки цветов и использования их в функции findheapcolor скрипт будет выводить слово Лосяш на этом персонаже при воспроизведение этого мультфильма на компьютере.

Скрины работы с инструментом:

Нажмите для увеличения



Нажмите для увеличения


Скрипт поиска Лосяша на видео и вывода слова Лосяш на этом персонаже в реальном времени воспроизведения видео. В браузере Мозила.
Указать свои координаты левого верхнего и правого нижнего угла с помощью Шпиона Кибор (Мышь в клиентской части окна).
CODE:
int r=15;//Допускаемое отклонение цвета пикселя
int левый_угол_верх_X=212;
int левый_угол_верх_Y=178;
int правый_угол_низ_X=756;
int правый_угол_низ_Y=469;


int color[5], kol[5];//Массивы для трех цветов

color[0]=567530;
color[1]=1977488;
color[2]=234711;
color[3]=1005733;
color[4]=689610;

kol[0]=50;
kol[1]=20;
kol[2]=10;
kol[3]=10;
kol[4]=5;

int x, y;//Тут координаты найденные
int Xx=0, Yy=0;//Вспомогательные
textbkcolor (8454143,255);//Установка цвета текста

win w=window (-1, "MozillaWindowClass", -1);//Указательна окно с игрой
if (w==0)messagebox ("Неверный указатель. Запустите в мозиле или дайте свой указатель window");
loop()
{
if (findheapcolor(1, #color[0], #kol[0], 5, 5, #x, #y, 20, 20, 0, 0, левый_угол_верх_X, левый_угол_верх_Y, правый_угол_низ_X, правый_угол_низ_Y, r, r, r, r, r, r, w)==1)
{
Xx=x+w.leftclient+левый_угол_верх_X+10;
Yy=y+w.topclient+левый_угол_верх_Y+50;
textout(0, Xx, Yy, "лосяш", 0);
sleep(2);
}
else textout(0, Xx, Yy, "", 0);
sleep(2);
}


Видео Смешарики для теста. Не раскрывайте во весь экран. Просто запустить и указать координаты углов.


Если в скрипте сделать эти изменения будет искать Карыча
 Цитата:
int color[2], kol[2];//Массивы для трех цветов

color[0]=11759677;
color[1]=5774374;

kol[0]=50;
kol[1]=20;


int x, y;//Тут координаты найденные
int Xx=0, Yy=0;//Вспомогательные
textbkcolor (8454143,255);//Установка цвета текста

win w=window (-1, "MozillaWindowClass", -1);//Указательна окно с игрой
if (w==0)messagebox ("Неверный указатель. Запустите в мозиле или дайте свой указатель window");
loop()
{
if (findheapcolor(1, #color[0], #kol[0], 2, 2


===========================

Этот скрипт пометит надписью Лицо все лица при воспроизведение этого фильма. Ссылка на фильм Контакт
Довольно точно, хотя есть не распознанные и ошибки. В играх обычно объекты четче выделены по цветам чем в фильмах и у них часто присутствуют уникальные цвета.
Не разворачивать во весь экран. Запустить как есть в оконном и указать координаты видео как сказано выше.
Скрипт
CODE:
int r=7;//Допускаемое отклонение цвета пикселя
int левый_угол_верх_X=219;
int левый_угол_верх_Y=133;
int правый_угол_низ_X=825;
int правый_угол_низ_Y=432;

int color[5], kol[5];//Массивы для трех цветов

color[0]=1515306;
color[1]=5332868;
color[2]=4609404;
color[3]=6055818;
color[4]=397338;

kol[0]=5;
kol[1]=3;
kol[2]=2;
kol[3]=1;
kol[4]=1;

int x[10], y[10], k, n;
win w=window (-1, "MozillaWindowClass", -1);
if (w==0)messagebox ("Неверный указатель. Запустите в мозиле или дайте свой указатель window");
loop()
{
k=findheapcolor(10, #color[0], #kol[0], 5, 5, #x[0], #y[0], 15, 30, 200, 350, левый_угол_верх_X, левый_угол_верх_Y, правый_угол_низ_X, правый_угол_низ_Y, r, r, r, r, r, r, w);
resettextout(0);
textbkcolor (8454143,255);//Установка цвета текста
for (n=0; n<k; n++)textout(n, x[n]+w.leftclient+левый_угол_верх_X, y[n]+w.topclient+левый_угол_верх_Y+10, "Лицо", 0);
sleep(2);
}
2. Adomb - 28 Марта, 2016 - 16:34:22 - перейти к сообщению
Спасибо. Главное - только понадобилось - и на тебе. Улыбка
3. Kibor - 28 Марта, 2016 - 16:45:01 - перейти к сообщению
 Adomb пишет:
Спасибо. Главное - только понадобилось - и на тебе.

изучаю телепатию)
4. Skycrew - 28 Марта, 2016 - 17:49:57 - перейти к сообщению
Годная вещь. Спасибо!
5. Dantes3000 - 09 Февраля, 2018 - 06:58:47 - перейти к сообщению
Спустя 5 минут работы в Графике. И вылетает...

(Добавление)
6. Kibor - 09 Февраля, 2018 - 07:34:14 - перейти к сообщению
 Dantes3000 пишет:
Спустя 5 минут работы в Графике. И вылетает...

И? Что из этого я должен понять?
Я вижу 1200 мб памяти. И что? Информация откуда эта память взялась отсутствует. Может она выделена Кибором в настройках трансляции. Или ее выделил запускаемый скрипт?

Что значит 5 минут работы?
Вопрос не имеет решения.
7. Dantes3000 - 09 Февраля, 2018 - 07:39:43 - перейти к сообщению
Ну я ж сказал...5 минут работы в Графике. Выделял картинки и сохранял их. Интересует почему так много. Таким образом и 16 гиг может забить
8. Kibor - 09 Февраля, 2018 - 07:59:53 - перейти к сообщению
 Dantes3000 пишет:
Ну я ж сказал...5 минут работы в Графике. Выделял картинки и сохранял их. Интересует почему так много. Таким образом и 16 гиг может забить

Память как выделяется, так и освобождается.
Описанный режим работы не приводит к такому эффекту.
Видео тестирования. https://radikal.ru/video/OyFrxqP40fk
9. Dantes3000 - 09 Февраля, 2018 - 08:31:12 - перейти к сообщению
(для просмотра ссылки Вам необходимо авторизоваться)
В этот раз не получилось полностью воссоздать проблему.
Сначала было 400 мб выделено, я на видео не успел снять, поднялось до 560. Характерно, что это происходит после небольшого пролагивания программы. Потом где-то на 1:45 опять лагнуло и выделилось 800 мегабайт. Дальше можно не смотреть, до 720 опустилось и больше не смог вызвать эту ошибку. Когда еще раз появится - сниму, покажу.
(Добавление)
Там как раз видно было - я пытался выделить участок, но программа не отвечала и в это время как раз скакнуло на +450 мегабайт
10. Kibor - 09 Февраля, 2018 - 10:59:27 - перейти к сообщению
Вы так работаете в вкладе графика? Для чего могут понадобиться такие попиксельные массовые действия?
Память съедается на создание отката (отмены) при попиксельном выделение.
Багов в этом нет. Для работы с редактором для создания скриншотов, обычно применяется рамочное выделение с отменой не нужной области. или наоборот. Но не так, как показано на видео. Покажите реальный рабочей ситуации пример.

Powered by ExBB FM 1.0 Final