Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013 Откуда: Одесса
Репутация: 357
Добавлен инструмент для подсчета и определения оптимальных цветов пикселей для поиска в функции findheapcolorscanpixel
Находится в вкладке Графика Кибор, в меню правой кнопки мыши.
Использовать так:
1) Делаем снимок с помощью Графики Кибор нужной сцены в игре где есть нужный объект. Надо что бы объект был размера примерно такого какой будет при работе бота.
2) Выделяем не захватывая фон основные части искомого объекта.
3) Нажимаем правую кнопку и выбираем в меню Подбор Цвета
3) Указываем нужные параметры которые будем использовать для разбежности оттенков цветов.
4) Нажимаем Посчитать.
5) Появляются основные цвета которые можно использовать в поиске и их количество. В виде параметров указывать примерно в 20-200 раз меньше количество.
6) Используем их в функциях findheapcolorscanpixel основные цвета.
Пример подготовки поиска изображения Лосяша с мультфильма Смешарики. После подготовки цветов и использования их в функции findheapcolor скрипт будет выводить слово Лосяш на этом персонаже при воспроизведение этого мультфильма на компьютере.
Скрины работы с инструментом:
Нажмите для увеличения
Нажмите для увеличения
Скрипт поиска Лосяша на видео и вывода слова Лосяш на этом персонаже в реальном времени воспроизведения видео. В браузере Мозила.
Указать свои координаты левого верхнего и правого нижнего угла с помощью Шпиона Кибор (Мышь в клиентской части окна).
CODE:
int r=15;//Допускаемое отклонение цвета пикселя
int левый_угол_верх_X=212;
int левый_угол_верх_Y=178;
int правый_угол_низ_X=756;
int правый_угол_низ_Y=469;
Видео Смешарики для теста. Не раскрывайте во весь экран. Просто запустить и указать координаты углов.
Если в скрипте сделать эти изменения будет искать Карыча
Цитата:
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;
Покинул форум
Сообщений всего: 185
Дата рег-ции: Июль 2015
Репутация: 1
Спасибо. Главное - только понадобилось - и на тебе.
Kibor
Отправлено: 29 Марта, 2016 - 00:45:01
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013 Откуда: Одесса
Репутация: 357
Adomb пишет:
Спасибо. Главное - только понадобилось - и на тебе.
изучаю телепатию)
Skycrew
Отправлено: 29 Марта, 2016 - 01:49:57
Мастер
Покинул форум
Сообщений всего: 123
Дата рег-ции: Июль 2014
Репутация: 0
Годная вещь. Спасибо!
Dantes3000
Отправлено: 09 Февраля, 2018 - 14:58:47
Эксперт
Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016
Репутация: 58
Спустя 5 минут работы в Графике. И вылетает... (Добавление)
Kibor
Отправлено: 09 Февраля, 2018 - 15:34:14
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013 Откуда: Одесса
Репутация: 357
Dantes3000 пишет:
Спустя 5 минут работы в Графике. И вылетает...
И? Что из этого я должен понять?
Я вижу 1200 мб памяти. И что? Информация откуда эта память взялась отсутствует. Может она выделена Кибором в настройках трансляции. Или ее выделил запускаемый скрипт?
Что значит 5 минут работы?
Вопрос не имеет решения.
Dantes3000
Отправлено: 09 Февраля, 2018 - 15:39:43
Эксперт
Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016
Репутация: 58
Ну я ж сказал...5 минут работы в Графике. Выделял картинки и сохранял их. Интересует почему так много. Таким образом и 16 гиг может забить
Kibor
Отправлено: 09 Февраля, 2018 - 15:59:53
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013 Откуда: Одесса
Репутация: 357
Dantes3000 пишет:
Ну я ж сказал...5 минут работы в Графике. Выделял картинки и сохранял их. Интересует почему так много. Таким образом и 16 гиг может забить
Память как выделяется, так и освобождается.
Описанный режим работы не приводит к такому эффекту.
Видео тестирования. https://radikal.ru/video/OyFrxqP40fk
Dantes3000
Отправлено: 09 Февраля, 2018 - 16:31:12
Эксперт
Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016
Репутация: 58
(для просмотра ссылки Вам необходимо авторизоваться)
В этот раз не получилось полностью воссоздать проблему.
Сначала было 400 мб выделено, я на видео не успел снять, поднялось до 560. Характерно, что это происходит после небольшого пролагивания программы. Потом где-то на 1:45 опять лагнуло и выделилось 800 мегабайт. Дальше можно не смотреть, до 720 опустилось и больше не смог вызвать эту ошибку. Когда еще раз появится - сниму, покажу. (Добавление)
Там как раз видно было - я пытался выделить участок, но программа не отвечала и в это время как раз скакнуло на +450 мегабайт
Kibor
Отправлено: 09 Февраля, 2018 - 18:59:27
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013 Откуда: Одесса
Репутация: 357
Вы так работаете в вкладе графика? Для чего могут понадобиться такие попиксельные массовые действия?
Память съедается на создание отката (отмены) при попиксельном выделение.
Багов в этом нет. Для работы с редактором для создания скриншотов, обычно применяется рамочное выделение с отменой не нужной области. или наоборот. Но не так, как показано на видео. Покажите реальный рабочей ситуации пример.
Все гости форума могут просматривать этот раздел. Только администраторы и модераторы могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.