St7735 много или имитация разных часов

Да в исходниках фастледа преобразование глянь. Оно там даже как раз восьмибитное.

Необязательно.
С насыщенностью - да, без 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 другой, чем в первой формуле.

1 лайк

Да, но я в них ни хрена не понимаю, к сожалению.

В моих опытах получается ровно наоборот… почему-то. Путаю яркость и контрастность?
Сделал именно сложением-вычитанием по стратегии:


сначала после обесцвечивания:

потом развил на цвет:


В этих примерах три значения контрастности -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 сделать :slight_smile:

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

Сделал сатурацию, правда только на ослабление цвета от исходного.


Забавная идея этого цветового конуса, градиент восприятия появляется так сказать :slight_smile:
анизотропия одним словом.
Теперь можно использовать сочетания преобразований имеющегося исходника на мк для получения разностей в изображении:

Добавил ещё рокировку местами компонент цвета RGB.

Добавил и на усиление цвета:


Надо ещё какую-нибудь настройку придумать с помощью конуса:)

а ведь все начиналось с часов :slight_smile:

2 лайка

Мне вот интересно, почему все эксперименты по преобразованию цвета происходят:

  • над убогоньким фрагментом, практически повторенным 4 раза,
  • над изображением с очень ограниченной цветовой гаммой,
  • над изображением с урезанной в полтора раза глубиной цвета,
  • над изображением, пострадавшим, во-первых, за счет отображения на дешевеньком дисплее, искажающем цвета,
  • с эффектами от паразитной засветки внешним освещением,
  • к которому затем еще добавлены искажением со стороны фотоаппарата.

Уж, казалось бы, почему не взять нормальное полноцветное изображение, обработать его по исследуемому алгоритму и опубликовать, не прибегая к искажениям цвета, обусловленным ардуино-дисплеем, условиями освещения стенда, а также матрицей фотоаппарата, не говоря о редукции глубины цвета?
А если уж идти на принцип, следовало бы добавить в экспериментальный стенд между экранами и фотоаппаратом матовую неравномерно окрашенную пластину.

1 лайк

Не, вроде начиналось всё стандартно: сначала переругивания новичка. а потом он показал зелёных человечков :smile: и всё заверте…

Вот и аудиофилов никто( ну кроме них самих) не понимает :thinking: А вдруг подставки под акустические провода за десятки тысяч рублей(подставки, провода должны быть за сотни) и правда необходимы? Да даже пятисотрублёвые и то наверняка нужны, а мы ж сирые не понимаем. Слушаем и смотрим то, что есть.

Я так скажу, Лилик молодец, уважуха!

1 лайк

Принцип прост - имея исходный массив изображения, само восприятие изображения на экране можно существенно менять, имея программные регулировки в скетче МК. Сами по себе алгоритмы не очень интересны, так как математика их вариативна и субъективна, а качественное описание наверняка однотипно. Хотя конечно для достоверности было бы полезно самописное приложение для ПК, визуализирующее их работу на примере более качественных картинок до и после преобразований.

это было понятно с его первой публикации девайса на транзисторах )))