Author Topic: Добавить в цветокорректировку режим "Оттенки серого"  (Read 5170 times)

0 Members and 1 Guest are viewing this topic.

PovAndy

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Здравствуйте!

Столкнулся с проблемой распозновании картинки с мелкими вериткальными линиями. (Например мелкий шрифт)

К примеру:
Мне надо найти на экране слово (написанное не черным цветом), толщина линий в буквах порядка 2-3 пикселей в ширину и размер букв примерно 6х10 пикселей.
А проблема в том, что при увеличении этих букв видно, что вертикальные линии состоят из нескольких вертикальных цветных линий (т.е. однотонный цвет состоит из нескольких разных, при удалении от монитора смотрится как один цвет)!  Что не позволяет искать такие картинки в разных местах экрана, (т.к. один цвет можно получить из смешивания нескольких разных), тем более на разных компьютерах.

Прикладываю картинки:
в маленьком размере они одинаковые и
А при увеличении уже видно разницу
и

Идея в том, что бы в цветокоррекции включить режим "Оттенки серого", что позволит избавится от таких ньюансов и получить чистые буквы без разных цветов.

Сразу скажу, что в режиме Ч/Б (2 цвета) буквы совсем пропадают, т.к. они написаны не очень ярко.
Понижение количества цветов тоже не помогает, буквы теряются...

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Поздравляю, ты открыл для себя сглаживание шрифтов ClearType.

http://crapware.aidf.org/forum/index.php?topic=293.msg2482#msg2482

Только при чём здесь "оттенки серого"? COLORMODE 7 уровня (по надобности и 6-го) дадут меньше оттенков. И к тому же это всё равно не сделает текст определяемым легко без настройки процента совпадения (если оставить 100%). Т.е. чтобы добиться стабильного поиска такого текста, количество телодвижений при "оттенках серого" не уменьшится, а чаще увеличится.

Оттенки серого, по умолчанию  -  256 цветов.
COLORMODE 7                              -      8 цветов
COLORMODE 6                              -    64 цвета

Самый верный способ, если скрипты "для себя" - отключить сглаживание, и больше не париться.

Если скрипт не очень критичен к скорости, можно получить оттенки серого самим скриптом. Вот можешь прикрутить и побаловаться. Потом решить легче стало и стоит ли заморачиваться.
http://crapware.aidf.org/forum/index.php?topic=2390.msg14982#msg14982
продолжение:  тема "коррекция яркость/контраст"


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Во, проверил как эти образцы выглядят в градациях серого... Ничего хорошего.
Видать проще отключить сглаживание


Johnny

  • Создатель
  • Герой форума
  • *
  • Posts: 593
    • View Profile
>Мне надо найти на экране слово (написанное не черным цветом)

если это в браузере, то смотри в сторону плагинов, переопределяющих стили (CSS). тысячи их.
ставишь для данного элемента страницы черный шрифт и все твои проблемы в прошлом

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
вот попробовал с коррекцией контраста. тот же COLORMODE(8 ), но со сдвигом "границы между черным и белым".


пару пикселей не совпадают, но при 90% поиске находит и одну и вторую картинку.

Code: (clickermann) [Select]
SUB(cmode, $k,$mid,$x1,$y1,$x2,$y2 )
   
   print("start cmode")
   GETSCREEN($x1,$y1,$x2,$y2)
   // SCREENSHOTEX($x1,$y1,$x2,$y2)
   FOR($y=$y1,$y<$y2+1)
      FOR($x=$x1,$x<$x2+1)
         $c= pxl($x,$y)
         IF(((colorr($c)+colorg($c)+colorb($c))/3) > $mid)
            $outr=colorr($c)+$k
            $outg=colorg($c)+$k
            $outb=colorb($c)+$k
            IF($outr < $mid)
               $outr=$mid
            END_IF
            IF($outg < $mid)
               $outg=$mid
            END_IF
            IF($outb < $mid)
               $outb=$mid
            END_IF
         else
            $outr=colorr($c)-$k
            $outg=colorg($c)-$k
            $outb=colorb($c)-$k
            IF($outr > $mid)
               $outr=$mid
            END_IF
            IF($outg > $mid)
               $outg=$mid
            END_IF
            IF($outb > $mid)
               $outb=$mid
            END_IF
         END_IF
         IF($outr < 0)
            $outr=0
         END_IF
         IF($outg < 0)
            $outg=0
         END_IF
         IF($outb < 0)
            $outb=0
         END_IF
         IF($outr > 255)
            $outr=255
         END_IF
         IF($outg > 255)
            $outg=255
         END_IF
         IF($outb > 255)
            $outb=255
         END_IF
         PXLREPLACE($x,$y,$x,$y,$c,COLORGEN($outr,$outg,$outb))
      END_CYC
   END_CYC
   print("fin cmode")
   
   SCREENSHOTEX($x1,$y1,$x2,$y2)
   
END_SUB


cmode(255,240,382,222,410,272)



scanpicture($var, 382,222,410,272, "like.bmp",-1,90)
while (arrsize($var) > 0)
  $y = arrpop($var)
  $x = arrpop($var)
  print($x,":", $y) //находит 2 экземпляра.
end_cyc


halt
поиск и коррекцию брал прямо из браузера, а у меня скорее всего тоже стоит сглаживание, возможно эти картинки еще больше сгладились  :D.
[spoiler]вин10... тут даже прога для просмотра картинок сглаживает их. паинт вроде не сглаживает, но кликер в нем не видит ничего[/spoiler]
коррекция происходит очень медленно  :(, так-что будем надеяться, что данную процедуру в будущем добавят в кликерманн, и она будет работать также резво как и существующий колормод.


тема по контрасту http://crapware.aidf.org/forum/index.php?topic=2399.0


PovAndy

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Во, проверил как эти образцы выглядят в градациях серого... Ничего хорошего.
Видать проще отключить сглаживание

В ч/б переводить не получится, отдельно текст хорошо переводится в 2 цвета, (и то не всегдаЮ, т.к. текст может быть написан светлым цветом!), а если выбрать диапазон снижения цвета больше, чем только сам текст (а так обычно и бывает), т.е. захватить соседние картинки с экрана и т.д., то текст совсем теряется, некоторые точки совсем пропадают!!!!

Оттенки серого, по умолчанию  -  256 цветов.
COLORMODE 7                              -      8 цветов
COLORMODE 6                              -    64 цвета

Самый верный способ, если скрипты "для себя" - отключить сглаживание, и больше не париться.
Я делаю программу для большого количества народа, поэтому каждый не будет замарачиваться с этой настройкой!

Во, проверил как эти образцы выглядят в градациях серого... Ничего хорошего.
Видать проще отключить сглаживание

Спасибо, это попробую!

PovAndy

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
если это в браузере, то смотри в сторону плагинов, переопределяющих стили (CSS). тысячи их.
ставишь для данного элемента страницы черный шрифт и все твои проблемы в прошлом

Это плагины для браузера или для кликера?
Можно ли из самого кликера изменить css?

PovAndy

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Ещё пример цветокорриктеровки
Это оригинал
А это после цветокорриктеровки 8
« Last Edit: August 07, 2017, 01:00:25 PM by PovAndy »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Пример только как пример? Не рабочий, надеюсь.
Просто, нужно стараться не искать текст там, где можно без этого обойтись. На примере прекрасно ищется иконка голосующего человечка.
А по градациям серого, если в новой версии не будет, если получится, то добавлю вот сюда:
http://crapware.aidf.org/forum/index.php?topic=2850.msg22933#msg22933


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Это плагины для браузера или для кликера?
Можно ли из самого кликера изменить css?
Для браузера. "custom style script"  http://crapware.aidf.org/forum/index.php?topic=2973.0

Из кликера нельзя.