Кибор » Кибор - Интегрированная среда разработки ботов » Предложения по программе » Аналог colormode

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

1. Nightshade2 - 24 Ноября, 2016 - 23:47:33 - перейти к сообщению
Здравствуйте. В Кликермане есть очень удобная функция colormode. C ее помощью можно снижать битность цвета картинки. Это очень удобно на полупрозрачных картинках.
Например в игре есть полупрозрачная панель, под нее может попасть что угодно. Это создает "шум" при поиске нужного изображения. Но если цветность делать 16 или 2 цвета, этот шум исчезает. Намного проще и быстрее и искать по черно-белой картинке нужный текст какой-нибудь кнопки. В результате имеем хорошую скорость и точность. В вашей программе аналогов не нашел. Можно конечно играть с яркостью цвета, но это не то, что нужно.
2. Nightshade2 - 30 Ноября, 2016 - 05:52:41 - перейти к сообщению
Сейчас написал такой код
CODE:

int analiz[300][350];
screen (#analiz[0][0], PosX_st[0], PosY_st[0], PosX_kn[0]+70, PosY_kn[0], w);
saveimage(#analiz[0][0], "c:\screen\1.bmp");
int aX,aY,pxl,pxlR,pxlG,pxlB;
for (aX=0;aX<300;aX++)
{
for (aY=0;aY<300;aY++)
{
pxl=analiz[aX][aY];
pxlR=rvalue(pxl);
pxlG=gvalue(pxl);
pxlB=bvalue(pxl);
pxlR=(pxlR/64)*64;
pxlG=(pxlG/64)*64;
pxlB=(pxlB/64)*64;
pxl=rgb(pxlR, pxlG, pxlB);
analiz[aX][aY]=pxl;
}
}
saveimage(#analiz[0][0], "c:\screen\1_obrab.bmp");


Код работает безумно долго. Около 30 сек. Приемлимо было бы меньше 500 мс.
Результат обработки (Отобразить)
3. Kibor - 30 Ноября, 2016 - 06:12:20 - перейти к сообщению
В Киборе другие направления поиска, которые более эффективны.
см эту тему http://kibor-bot.com/stat/graphicskibor.php
надо научиться пользоваться этими функциями и найти можно все.
4. Nightshade2 - 30 Ноября, 2016 - 23:10:46 - перейти к сообщению
Это было бы неплохо. Только вот, после убирания динамики, на картинке остаются по 2-3 пиксела. Распознавать по ним картинку тяжело.
5. Dreika - 18 Февраля, 2025 - 15:52:55 - перейти к сообщению
<img src="https://ru.paste.pics/SU77O"></img>
Без COLORMODE в кибере нет возможности поиска динамично перекрывающихся линиями объектов.
PHP:

/// Рабочее нахождение перечеркнутого линиями объекта через Clicerman

SUB(sk, $var)
FOR($a=0,$a<18)
arrpop($var)
$a=$a+1
END_CYC
END_SUB

GETSCREEN // снимок экрана в буфер для анализа
COLORMODE(7)
SCANPXL($ARR_SCAN, 0,0, $_xmax,$_ymax, 8339327)
sk($ARR_SCAN)
while (ARRSIZE($ARR_SCAN)>0)
$y=arrpop($ARR_SCAN)
$x=arrpop($ARR_SCAN)
$p=PXLCOUNT($x-18,$y-18, $x+18,$y+18, 8339327)
IF($p>108)//108
//LOGWRITE("Проверка пикселей $p>165 в $p=", $p)
IF($p<198)//180
$p2=PXLCOUNT($x-18,$y-18, $x+18,$y+18, 12550079)
//LOGWRITE("Проверка пикселей $p<198 в $p=",$p," $p2=",$p2)
IF($p2>68)//68
//LOGWRITE("Проверка пикселей $p2>99 в $p=",$p," $p2=",$p2)
IF($p2<95)//95
$p3=PXLCOUNT($x-18,$y-18, $x+18,$y+18, 4145151)
//LOGWRITE("Проверка пикселей $p2>99 в $p=",$p," $p2=",$p2," $p3=",$p3)
IF($p3>1)//1
LOGWRITE("Проверка пикселей $p3>99 в $p=",$p," $p2=",$p2," $p3=",$p3)
IF($p3<11)//11
LOGWRITE("Биржа найдена в x=",$x," y=",$y," $p=",$p," $p2=",$p2," $p3=",$p3)
END_IF
END_IF
END_IF


[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
(Добавление)
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
6. Kibor - 19 Февраля, 2025 - 13:05:28 - перейти к сообщению
 Dreika пишет:
Без COLORMODE в кибере нет возможности поиска динамично перекрывающихся линиями объектов.

я думаю в кибор найдется достаточно механизмов что бы решить такую яркую задачу
7. Dreika - 22 Февраля, 2025 - 22:34:47 - перейти к сообщению
Имеете ввиду фильтр вертикальных и горизонтальных линий на получение границ обьёктов?
Увы объект анимирован и у него нет стоящих на месте пикселей.
Я видимо слишком тупая чтобы увидеть множества решений, кроме фильтрации по преобладающим цветам на объекте. Работает у меня код быстро, но язык програмирования у clikerman не позволяет прописать сложный код так как он ломается в циклах. Обычно я ошибки нахожу в коде, но при коде без кавычек проверять долго (if(true){}else{})
8. Kibor - 23 Февраля, 2025 - 07:22:52 - перейти к сообщению
Я имею ввиду поиск красных пикселей и использование findheapcolor (для просмотра ссылки Вам необходимо авторизоваться)
попробуйте этот метод.
9. Dreika - 24 Февраля, 2025 - 23:04:16 - перейти к сообщению
Попробовала. Пока находит кучу лишнего. как искать диапазоном минимум - максимум(0 не ограничено) пикселя данного усреднённого цвета? Перегруженные функции судя по параметрам одной и той же функции же поддерживаются? Много похожих объектов отфильтровать. В "подборе цвета" цвета не отображает, приходиться копировать и смотреть что за цвета. Ну и весь список найденных желательно (указывать сколько цветов выводить, чтоб выбрать самые редкие). Искать по выбранному пипеткой цвету количество усреднённых пикселей по выделению возможно?
CODE:
int r=61;//Допускаемое отклонение цвета пикселя
int color[6], kol[6];//Массивы для цветов

//color[0]=8339327;
//color[1]=12550079;
//color[2]=4145151;


//kol[0]=109;
//kol[1]=69;
//kol[2]=2;


color[0]=6365519;
color[1]=10448806;
color[2]=2757266;
color[3]=1246179;
color[4]=2981588;
color[5]=7253472;

kol[0]=195;
kol[1]=66;
kol[2]=15;
kol[3]=6;
kol[4]=4;
kol[5]=2;

int x, y;//Тут координаты найденные
int Xx=0, Yy=0;//Вспомогательные
textbkcolor (8454143,255);//Установка цвета текста
int colors, xw, yw;
getdisplay(colors, xw, yw);
if (findheapcolor(1, #color[0], #kol[0], 6, 6, #x, #y, 36, 36, 72, 72, 0, 0, xw, yw, r, r, r, r, r, r, -1)==1)
{
//string u=format(yw)+"Биржа найдена!"+format(y);
//messagebox (u);
textout(0, x, y, "Биржа найдена!", 0);
//sleep(100);
}
else{
//messagebox (""); textout(0, Xx, Yy, "", 0);
}
sleep(2000);
10. Kibor - 26 Февраля, 2025 - 03:39:34 - перейти к сообщению
kol[0]=195;
kol[1]=66;
kol[2]=15;
kol[3]=6;
kol[4]=4;
kol[5]=2;

это очень много количество..

Как подбирать цвета(для просмотра ссылки Вам необходимо авторизоваться)

эти видео смотрели?(для просмотра ссылки Вам необходимо авторизоваться) (для просмотра ссылки Вам необходимо авторизоваться)

Powered by ExBB FM 1.0 Final