Да в исходниках фастледа преобразование глянь. Оно там даже как раз восьмибитное.
Необязательно.
С насыщенностью - да, без HSV никак.
А контрастность прекрасно делается и в RGB.
Фантазировать можно столько, сколько угодно.
Но контрастность изображения - это линейное преобразование. Нелинейным оно становится лишь по достижении насыщения.
Линейная функция это Y = AX + B.
Контрастность изменяет коэффициент A. Вопрос остается лишь в том, вокруг какой точки “поворачивается” график функции.
По идее она должна вращаться вокруг точки (0.5, 0.5), но в старых ламповых телевизорах делали, как проще: вращали ее вокруг (0, 0).
Смутно начинаю понимать…
Уточнение по базовым формулам:
___________R____ G_____B__
int cvet=0b 01010 011001 11000;
R= cvet/2048; G= (cvet%2048)/32); B= cvet%32;
cvet=R*2048+G*32+B; //R=0__31,G=0__63,B=0__31
R,G,B // исходные составляющие цвета пикселя
Rmax-R, Gmax-G, Bmax-B // инверсия цвета
Rs=Gs=Bs=0,3*R+0,58*G+0,12*B // чёрно-белое изображение
Rj=R*J,Gj=G*J,Bj=B*J //яркость смена (уменьшение от исходной) J=0.0---1.0
сепия:
Стратегия контрастности на примере ч\б изображения. Есть некая пороговая красная точка-пиксель. При убывании контраста все другие (голубые точки) к ней стремятся, при усилении - разбегаются от неё. Так?
мне кажется что точки темнее пороговой сстановятся еще темнее, а светлее становятся светлее это при увеличении контрастности, при уменьшении - наоборот
Я вроде так и рассуждаю…
Сделал регулировку яркости в обе стороны от исходника.
Rj=R*J,Gj=G*J,Bj=B*J //яркость смена (уменьшение от исходной и увеличение) J=0.0___1.0___10.0
Мне кажется, здесь уместнее битовые маски и сдвиги (для понятности, чтобы не возникало вопросов, откуда появилась константа 2048).
Нет.
Выше я приводил формулу Y = A*X + B
Так вот, коэффициент наклона (операция умножения) в этой формуле определяет контрастность, а постоянный член (операция сложения) - яркость.
Приведенная же выше формула соответствует “неправильной” контрастности. А неправильная она именно потому, что заодно влияет и на яркость.
Вот, собственно, в старых ламповых телевизорах яркость и контрастность были организованы именно так: А - контрастность, B - яркость.
Для "правильной! формула будет примерно такой: Y = A*(X-X0) + B
Только диапазон изменения B другой, чем в первой формуле.
Да, но я в них ни хрена не понимаю, к сожалению.
В моих опытах получается ровно наоборот… почему-то. Путаю яркость и контрастность?
Сделал именно сложением-вычитанием по стратегии:
сначала после обесцвечивания:
потом развил на цвет:
В этих примерах три значения контрастности -15,0,+15. Диапазон от -30 до +30.
Ослабление контраста даёт улучшение восприятия сепии, кстати.
Напиши число в бинарном виде и все поймёшь.
Деление на 2 - сдвиг битов вправо, умножение - влево. 2048 - 2^10. Деление и умножение на него - просто сдвиг на 10 позиций зараз.
Rj=R*J+J,Gj=G*J+J,Bj=B*J+J //яркость смена (уменьшение от исходной и увеличение) J=0.0___1.0___30.0
Уточнил формулу для яркости (покрутил картинки в редакторе графическом - в крайних положениях она чёрная и белая должна быть полностью).
верхняя картинка яркость 15.0, нижняя 0.3.
Осталось попробовать насыщенность в RGB сделать

А вот это принято делать в HSV.
Если хочешь формулы именно в RGB - просто вытаскиваешь их из: RGB->HSV, подкрутить S, HSV->RGB.
Сделал сатурацию, правда только на ослабление цвета от исходного.
Забавная идея этого цветового конуса, градиент восприятия появляется так сказать

анизотропия одним словом.
Теперь можно использовать сочетания преобразований имеющегося исходника на мк для получения разностей в изображении:
Добавил ещё рокировку местами компонент цвета RGB.
а ведь все начиналось с часов
Мне вот интересно, почему все эксперименты по преобразованию цвета происходят:
- над убогоньким фрагментом, практически повторенным 4 раза,
- над изображением с очень ограниченной цветовой гаммой,
- над изображением с урезанной в полтора раза глубиной цвета,
- над изображением, пострадавшим, во-первых, за счет отображения на дешевеньком дисплее, искажающем цвета,
- с эффектами от паразитной засветки внешним освещением,
- к которому затем еще добавлены искажением со стороны фотоаппарата.
Уж, казалось бы, почему не взять нормальное полноцветное изображение, обработать его по исследуемому алгоритму и опубликовать, не прибегая к искажениям цвета, обусловленным ардуино-дисплеем, условиями освещения стенда, а также матрицей фотоаппарата, не говоря о редукции глубины цвета?
А если уж идти на принцип, следовало бы добавить в экспериментальный стенд между экранами и фотоаппаратом матовую неравномерно окрашенную пластину.
Не, вроде начиналось всё стандартно: сначала переругивания новичка. а потом он показал зелёных человечков и всё заверте…
Вот и аудиофилов никто( ну кроме них самих) не понимает А вдруг подставки под акустические провода за десятки тысяч рублей(подставки, провода должны быть за сотни) и правда необходимы? Да даже пятисотрублёвые и то наверняка нужны, а мы ж сирые не понимаем. Слушаем и смотрим то, что есть.
Я так скажу, Лилик молодец, уважуха!
Принцип прост - имея исходный массив изображения, само восприятие изображения на экране можно существенно менять, имея программные регулировки в скетче МК. Сами по себе алгоритмы не очень интересны, так как математика их вариативна и субъективна, а качественное описание наверняка однотипно. Хотя конечно для достоверности было бы полезно самописное приложение для ПК, визуализирующее их работу на примере более качественных картинок до и после преобразований.
это было понятно с его первой публикации девайса на транзисторах )))