С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Я не знаю, как с этим бороться (не меняя глобально алгоритм). Вот есть белая точка, затемненная до (0.333(3), 0.333(3), 0.333(3)). И в палитре для этой точки ближайший цвет - черный. Т.е. даже для чисто белой картинки первая точка в отдизеренной катринке всегда будет черной. И это влияет и на дизеринг оставшихся точек.
в принципе логично
НО
если использовать коэфициенты для RGB
ТО
чисто синий это 1/7 = 0,14285714285714285714285714285714
что явно меньше чем 0,33333
а первым пикселем пойдет красный с яркостью 0,28571428571428571428571428571429
- - - Добавлено - - -
так же даже если первый пойдет черным
то при правильном алгоритме он будет единственным лишним черным
ну или одним из нескольких
у меня тут на белом лишних черных особоо то и не видно (7 пикселей)
![]()
прозевал![]()
по идеи да
и со 100%
- - - Добавлено - - -
без понятия
его как раз нгужно изобрести
щас к нему только есть требования что он должен выдавать на выходе
- - - Добавлено - - -
и может мой множитель 0,260514255 (sRGB 0.54735)
как то с этих степеней и вытекает
надо еще подумать
Если быть точнее, то я считаю так: 0.212655 * (R1 - R2)^2 + 0.715158 * (G1 - G2)^2 + 0.072187 *(B1 - B2)^2
КСТАТЕ насчет подавления текучки
может стоит каждый шаг при распределении ошибки
проверять во сколько раз получается яркость пикселей больше\меньше чем яркость в оригинальном изображении
и делать обрезание если идет превышение например в 2, 3, 10 разов
тупое ограничение максимума не давало особо положительных результатов
- - - Добавлено - - -
ЕЩЕ КСТАТЕ если подумать
ТО
можно наверно запихнуть мноижетли 0.072187*
на первый проход когда изображение переводится еще из sRGB в линейное
ну и поллитру для расчетов так же подогнать
а потом использовать только (B1 - B2)^2
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)