Как понять — что это за цвет

Что это за цвет?

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

Откуда нам знать, что алгоритм работает?

Перед разработкой алгоритма нужно задуматься над тем, как мы будем оценивать его работу. Допустим, мы написали алгоритм, и он говорит, что «на этом изображении есть следующие цвета» – правильным ли будет его решение? И что это вообще значит — «правильным»?

Для решения этой задачи мы выбрали два важных измерения – правильную разметку основного цвета и правильное количество цветов. Мы задаём это как расстояние CIEDE 2000 (формула цветового отличия) между основным цветом, предсказанным нашим алгоритмом, и нашим реальным основным цветом, а также считаем среднюю абсолютную ошибку в количестве цветов. Такой выбор мы сделали по следующим соображениям:

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

Что насчёт «реальных» данных? Наша команда мерчандайзеров обеспечила нас метками, однако наши инструменты дают им возможность выбирать только самые общие цвета, вроде «серого» или «синего» – их нельзя назвать точным значением. Такие общие определения включают довольно много разнообразных оттенков, поэтому их в качестве реальных цветов использовать не получится. Придётся строить собственный набор данных.

Кто-то из вас мог уже задуматься о сервисах типа Mechanical Turk. Но нам не нужно размечать очень много изображений, поэтому описать эту задачу, возможно, будет даже тяжелее, чем просто выполнить её. Кроме того, создание набора данных помогает лучше разобраться в них. Мы по-быстрому сварганили приложение на HTML/Javascript и случайным образом выбрали 1000 изображений, выбрали для каждого пиксель, представляющий его основной цвет, и разметили количество увиденных нами на изображении цветов. После этого получить два числа, оценивающие качество нашего алгоритма, стало просто (расстояние до главного цвета CIEDE и количество цветов MAE).

Иногда мы проверяли работу программ вручную, запуская оба алгоритма на одном изображении и выводя два списка цветов. Затем мы вручную проставили оценки 200 изображениям, выбирая, какие цвета были распознаны «лучше». Очень важно подобным образом плотно работать с данными – чтобы не просто получить результат («алгоритм Б в 70% случаев отработал лучше алгоритма А»), но и понять, что происходит в каждом из случаев («алгоритм Б обычно выбирает слишком много групп, а алгоритм А упускает светлые цвета»).

КАКОЙ ТВОЙ ЛЮБИМЫЙ ЦВЕТ

Свитер и выбранные двумя разными алгоритмами цвета

Наш алгоритм извлечения цвета

Перед обработкой изображений мы преобразуем их в цветовое пространство CIELAB (или просто LAB) вместо более распространённого RGB. В результате наши три цифры будут обозначать не количество красного, зелёного и синего. Точки пространства LAB (правильнее будет L*a*b*, но мы для простоты будем писать LAB) обозначают три разных оси. L обозначает яркость от чёрного 0 до белого 100. A и B обозначают цвет: А указывает место в диапазоне от зелёного -128 до красного 127, а В – от синего -128 до жёлтого 127. Основное преимущество такого пространства – воспринимаемая однородность. Расстояние или разница между двумя точками в пространстве LAB будет восприниматься одинаково, вне зависимости от их местонахождения, если евклидово расстояние между ними в пространстве тоже будет одинаковым.

Естественно, у LAB есть другие проблемы: к примеру, мы рассматриваем изображения на компьютерных экранах, использующих RGB-пространство, зависящее от устройства. Также гамма LAB шире, чем у RGB, то есть в LAB можно выражать такие цвета, какие не выразишь через RGB. Поэтому преобразование из LAB в RGB не может быть двусторонним – преобразовав точку в одном направлении, а потом в обратном, можно получить другое значение. Теоретически эти недочёты присутствуют, но на практике метод всё равно работает.

Преобразовав картинку в LAB, мы получим набор пикселей, которые можно рассматривать, как точки (L, A, B, X, Y). Оставшаяся часть алгоритма занимается группировкой этих точек, при которой группы первого этапа используют все пять измерений, а второго – опускают измерения X и Y.

Группировка в пространстве

Мы начинаем с изображения без группировки пикселей, прошедшего цветовую корректировку, описанную в предыдущей статье, сжатого до 320×200 и преобразованного в LAB.

Что Эти 12 Цветов Одежды Говорят о Вашей Личности

Для начала применим алгоритм Quickshift, группирующий близлежащие пиксели в «суперпиксели».

Это уже сводит наше изображение, содержащее 60 000 пикселей, к нескольким сотням суперпикселей, удаляя ненужную сложность. Ещё более упростить ситуацию можно, слив воедино близлежащие суперпиксели с небольшим цветовым расстоянием между ними. Для этого мы рисуем их граф региональной близости – граф, в котором обозначающие два разных суперпикселя узлы соединяются ребром, если их пиксели соприкасаются.

Слева – граф региональной близости (Regional Adjacency Graph, RAG) для кардигана. Тёмные линии, соединяющие суперпиксели, говорят о том, что между ними нет особой цветовой разницы, и поэтому их можно сливать. Яркие линии, или их отсутствие, говорят о высоком различии между цветами, и о том, что их сливать не надо. Справа – суперпиксели, слитые после обработки графа по пороговым значениям.

Узлы графа – вычисленные нами суперпиксели, а рёбра – расстояние между ними в цветовом пространстве. У ребра, соединяющего два близлежащих суперпикселя с похожими цветами будет низкий вес (тёмные линии), а у ребра между суперпикселями с очень разными цветами – высокий (яркие линии, а также отсутствие линий – их не рисовали, если их вес больше 20). Существует много способов скомбинировать близлежащие суперпиксели, однако для нас оказалось достаточно простого порогового значения, равного 10.

В нашем случае 60 000 пикселей получилось свести к 100 участкам, в каждом из которых содержатся пиксели одного цвета. Это даёт преимущества при вычислениях: во-первых, мы знаем, что большой суперпиксель почти белого цвета – это фон, и его можно удалить. Мы удаляем все суперпиксели, у которых L>99, а А и В находятся в промежутке от -0,5 до 0,5. Во-вторых, мы можем сильно уменьшить количество пикселей на следующем шаге. У нас не получится уменьшить их количество до 100, поскольку нам надо взвешивать участки на основании количества содержащихся в них пикселей. Но мы можем легко удалить 90% пикселей из каждой группы, не особенно потеряв в детализации и почти не исказив следующей группировки.

Группировка без использования пространства

На данном шаге у нас есть несколько тысяч пикселей с координатами (L, A, B). Существует множество методов, способных красиво сгруппировать эти пиксели. Мы выбрали метод k-средних, поскольку он быстро работает, прост для понимания, у наших данных есть только 3 измерения, и евклидовое расстояние в LAB-пространстве имеет смысл.

Мы не особо умничали и провели группировку с К=8. Если в какой-то группе содержится меньше 3% точек, мы пробуем снова, уже с К=7, потом 6, и так далее. В итоге мы имеем список от 1 до 8 центров группировки и доли количества точек, принадлежащих к каждому из центров. Названия им даёт алгоритм colornamer, описанный в предыдущей статье.

Результаты и оставшиеся проблемы

Мы достигли среднего расстояния в 5,86 по шкале CIEDE 2000 между предсказанным и «реальным» цветом. Правильно интерпретировать этот показатель довольно сложно. По простой метрике расстояния CIE76 наша средняя дистанция равняется 7,82. По этой метрике значение 2,3 означает едва различимую разницу. Поэтому можно сказать, что наши результаты, немного превышающие 3, обозначают едва заметную разницу.

Также наш показатель MAE составил 2,28 цветов. Но опять-таки, это вторичная метрика. Многие описанные далее алгоритмы уменьшают эту ошибку, но за счёт увеличения цветового расстояния. Гораздо проще проигнорировать ложные цвета, стоящие на 5-м или 6-м месте, чем проигнорировать неправильный 1-й цвет.

Даже вещи явно одного цвета, как эти шорты, содержат области, из-за теней кажущиеся гораздо более тёмными

Остаётся проблема теней. Ткань не уложишь идеально ровно, поэтому часть изображения всегда останется в тени, и будет казаться обманчиво другого цвета. Простейшие подходы вроде поиска дубликатов цветов одного оттенка и разной яркости не работают, поскольку переход от «пикселя без тени» к «пикселю в тени» не всегда работает одинаково. В будущем мы надеемся использовать более хитрые техники вроде DeshadowNet или автоматического распознавания теней.

Мы сконцентрировались только на цвете одежды. У бижутерии и туфель свои проблемы: наши фотографии украшений слишком маленькие, а на фотографиях обуви часто видно её внутренность. В приведённом выше примере мы бы указали наличие на фото бургундского и охры, хотя важен только первый из них.

Что ещё мы пробовали

Этот последний алгоритм кажется довольно простым, но до него непросто было додуматься! В данном разделе я опишу варианты, которые мы пробовали и на которых учились.

Удаление фона

Мы пробовали алгоритмы удаления фона – к примеру, алгоритм от Lyst. Неформальная оценка показала, что они работают не так точно, как простое удаление белого фона. Однако мы планируем поглубже изучить его по мере обработки изображений, над которыми не работала наша фотостудия.

Психология цвета / Влияние цвета на человека / Страх цвета / Хроматофобия, Хромофобия, Хемотафобия

Хэширование пикселей

Некоторые библиотеки для извлечения цветов выбрали простое решение данной задачи: группировать пиксели, хэшируя их в несколько достаточно широких контейнеров, а потом возвращать средние значения LAB контейнеров с наибольшим количеством пикселей. Мы опробовали библиотеку Colorgram.py; несмотря на её простоту, работает она удивительно неплохо. Кроме того, она работает быстро – не более секунды на изображение, в то время, как наш алгоритм тратит десятки секунд на одно изображение. Однако среднее расстояние до основного цвета у Colorgram.py было больше, чем у нашего алгоритма – в основном потому, что его результат взят у средних расстояний до больших контейнеров. Тем не менее, мы иногда используем его для случаев, когда скорость важнее точности.

Другой алгоритм разделения на суперпиксели

Мы используем алгоритм Quickshift для сегментирования изображения на суперпиксели, однако возможных алгоритмов существует несколько – к примеру, SLIC, Watershed и Felzenszwalb. На практике лучшие результаты показал Quickshift благодаря его работе с мелкими деталями. К примеру, у SLIC есть проблема с такими вещами, как полоски, занимающие много места на картинке. Вот показательные результаты работы алгоритма SLIC с разными настройками:

Оригинальное изображение

compactness=1

compactness=10

compactness=100

Для работы с нашими данными у Quickshift есть одно теоретическое преимущество: он не требует непрерывной связи суперпикселей. Исследователи отмечали, что из-за этого у алгоритмов могут возникать проблемы, однако в нашем случае это преимущество – часто у нас попадаются небольшие области с мелкими деталями, которые мы хотим привести к одной группе.

Рубашка в клеточку

Что о вас говорит ваш любимый цвет? [Psych2go на русском]

Её суперпиксельная группировка от Quickshift

Хотя суперпиксельная группировка от Quickshift выглядит хаотично, на самом деле она группирует все красные полоски с другими красными, синие с синими, и т.п.

Разные методы подсчёта количества групп

При использовании метода k-средних чаще всего возникает вопрос: каким сделать «k»? То есть, если нам надо группировать точки в некоторое количество групп, сколько их нужно делать? Для ответа на вопрос было разработано несколько подходов. Простейший – «локтевой метод», однако он требует ручной обработки графа, а нам нужно автоматическое решение. Статистика разрывов [Gap Statistic] формализует этот метод, и с её помощью мы получили лучшие результаты по метрике «количества цветов», однако за счёт точности определения основного цвета. Поскольку основной цвет важнее всего, мы не использовали её в рабочей программе, но планируем далее изучать этот вопрос.

Наконец, метод силуэта – ещё один популярный метод выбора k. Он выдаёт резульатты чуть хуже, чем наш алгоритм, и у него есть один серьёзный недостаток: ему нужно не менее 2 групп. Но у многих артикулов одежды есть только один цвет.

DBSCAN

Одно потенциальное решение вопроса выбора k – использовать алгоритм, не требующий от вас выбирать этот параметр. Один из популярных примеров – DBSCAN, ищущий в данных группы примерно равной плотности.

Разноцветная блузка

Все пиксели её изображения в LAB-пространстве. Пиксели не формируют чётких групп «зеленовато-голубой» и «фиолетовый».

Какого цвета X предмет ?? Не обманывай себя и друзей, узнай истину!

Часто у нас не получается таких групп, или мы видим что-то наподобие групп только из-за особенностей человеческого восприятия. Для нас зеленовато-голубые «огурцы» на блузке выделяются на фиолетовом фоне, но если мы построим все пиксели в координатах RGB или LAB, они не сформируют групп. Но мы всё равно пробовали DBSCAN с различными значениями эпсилон – и получили предсказуемо неважные результаты.

Решение от Algolia

Один из хороших принципов исследователи – посмотреть, не решил ли кто уже вашу проблему. Лео Эрколанелли с сайта Algolia опубликовал подробное описание решения такой задачи более трёх лет назад. Благодаря их щедрости в раздаче исходников, мы смогли сами попробовать их решение. Однако результаты получились чуть хуже наших, поэтому мы оставили наш алгоритм. Они решают не совсем ту же проблему, что мы: у них были изображения товаров на моделях и на отличном от белого фоне, поэтому разумно, что их результаты отличаются от наших.

КАКОГО ЦВЕТА ТВОЙ ХАРАКТЕР?

Координация цветов

Этот алгоритм завершает процесс, описанный в нашей предыдущей статье. После извлечения центров групп мы используем Colornamer для назначения им имён, а потом импортируем эти цвета в наши внутренние инструменты. Это помогает нам легко визуализировать нашу продукцию по цветам; мы надеемся включить эти данные в алгоритмы рекомендаций покупок. Этот процесс нельзя назвать идеальным решением, он помогает нам получить лучшие данные о тысячах наших товаров, что, в свою очередь, способствует нашей главной цели: помогать людям находить стили, которые им понравятся.

Опрос о переводе первой части

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Какой цвет цветов что означает и как его понять?

Когда девушка получает в подарок цветы, она всегда может узнать по их цвету то, что чувствует к ней дарящий человек. С помощью букета можно передать целую палитру чувств: любовь, симпатию или дружбу. Даже можно выразить желание расстаться. Какой цвет цветов что означает, читайте ниже.

Красный

Наверное, каждый человек знает, что розы алого цвета обозначают страсть и любовь. И это касается не только колючих красавиц. Любые другие цветы красного цвета также обозначают самые нескромные намерения. Но это правило работает только в том случае, когда мужчина дарит букет женщине в непринужденной обстановке. На официальном мероприятии темно-красный цвет цветов что означает? Какой бы ни был повод, такой букет будет символизировать признание и почет. Ведь темно-красный цвет всегда считался благородным, царским.

Если говорить об оттенках красного, например о нежно-розовом, то букет в таких тонах символизирует нежное чувство, но еще не страсть. Например, такие цветы будет уместно подарить девушке на первом свидании. Часто на свадьбу подруге друзья дарят букет светло-красного цвета. Этим самым они хотят показать симпатию, которую испытывают.

Учим цвета. Урок 1. Развивающие видео для детей (раннее развитие ребенка).

Белый

Этот цвет цветов что означает? Какой бы ни был праздник, самый беспроигрышный вариант — подарить белый букет. Он символизирует чистоту чувств. Такой букет уместно дарить артистам театра, любимым музыкантам и мужчинам. Вообще, представители сильного пола не очень любят получать цветы, но если вы все же решились сделать именно такой подарок, отдайте предпочтение белому цвету.

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

Часто невесты выбирают букет белого цвета. Этим они хотят показать, что начинают жизнь с чистого листа. А также белые цветы символизируют непорочность и чистоту невесты.

Желтый

Благодаря Наташе Королевой сегодня все хорошо знают, что символизируют тюльпаны этого цвета. Даже ребенок понимает, что желтые цветы – символ разлуки. Такой букет может подарить парень девушке при расставании. Но ведь не всегда люди прощаются навсегда. Иногда любимые просто временно расстаются. Например, мужчина может уехать в командировку. И тогда желтые цветы тоже будут вполне уместны. Но все же у нас в стране считается, что букет этого цвета лучше не дарить.

НАЗОВИ СВОЙ ЛЮБИМЫЙ ЦВЕТ И Я СКАЖУ, КТО ТЫ!

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

Теория цвета. Часть 1. Что такое цвет?

Синий

Вы уже начали немного понимать, какой цвет цветов что обозначает. Сейчас поговорим о синих цветах. Такой букет будет уместно дарить взрослому человеку. Синий цвет символизирует стабильность и постоянство. Издревле он представляет собой благородство. Поэтому композицию из синих цветов можно подарить профессору, академику или научному деятелю.

Если муж дарит такой букет жене, то он хочет сказать ей о верности и стабильности своих чувств.

Что говорит цвет о человеке. Психология цвета в одежде и рисунке

Синие цветы смотрятся очень необычно. Поэтому их часто преподносят творческим людям, например, художникам, скульпторам, музыкантам.

Фиолетовый

Выясняя, какой цвет цветов что означает, нельзя обойти и последний оттенок радуги. Фиолетовые цветы обычно дарят человеку, который добился успеха. Это цвет победителя, который смог достичь поставленной цели. А так как фиолетовый подсознательно настраивает на успех, родители выпускников могут этим пользоваться. Например, подарить дочке перед экзаменом букет ирисов, как бы говоря ей, что они в нее верят, знают, что она справится.

Теория цвета. Часть 3. Гармония цвета

Также фиолетовый – цвет благодарности. Такие цветы можно дарить учителю, бабушке или маме. Вы как бы говорите взрослым дамам: «Спасибо за то, что вы сделали». Приятно будет получить такой букет и старшей сестре. Ведь она помогала своим братьям и сестрам всю жизнь, учила и наставляла их, поэтому заслуживает приятного подарка.

Оранжевый

Мы уже поговорили о самых популярных цветах и поняли по психологии цветов, какая расцветка означает какое чувство. Осталось упомянуть об оранжевом. Цветы этого цвета означают радость и счастье. По сути, оранжевый – это же смесь красного и желтого. Вот и значение у него промежуточное.

КАК ПОДОБРАТЬ СВОИ ЦВЕТА ? | БЕЗ ЦВЕТОТИПОВ

Букетом такого цвета можно сказать любимой девушке, что она самая красивая, веселая и талантливая. Таким подарком можно сказать «спасибо» человеку, который помог вам, или подарить букет в качестве комплимента. Также такие цветы можно подарить маме, чтобы поднять ей настроение. На официальное мероприятие лучше выбирать что-то сдержанное, а оранжевые букеты оставить самым близким и родным.

Температура цвета. Тёплые и холодные оттенки и палитры // Color temperature

Что такое цвет?

Что такое цвет? Цвет — это особенность восприятия глазом разных волн света. Каждая волна соответствует спектру, он в сою очередь, носитель информации.

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

Цветоощущение доступно не всем животным на Земле. Полное разноцветное зрение есть у птиц и приматов, остальные различают только некоторые оттенки, например, красный.

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

Цветовосприятие, как носитель информации, в жизни человека стал играть огромную роль.
Цвет – как символ. Информация о предметах или явлениях, которые имеют определенный тон, объединились в образ, из которого сложился символ. Этот символ меняет свое значение от ситуации, но всегда понятен (он может быть не осознан, но принят подсознанием).
Пример: красное сердечко — символ люби. Красный светофор – предупреждение об опасности.

С помощью цветовых образов можно донести до читателя больше информации. Это лингвистическое понимание оттенков.
Пример: Надел я черный цвет,
В душе надежды нет,
Постыл мне белый свет.
Цветовое восприятие вызывает эстетическое удовольствие или неудовольствие.
Пример: Эстетика выражается в искусстве, хоть оно состоит не только из тонов, но и формы, и сюжета. Вы, не зная почему, скажете, что это красиво, а это искусством назвать нельзя.
Цвет влияет на нашу нервную систему, заставляет учащается или замедляться сердцебиение, влияет на обмен веществ и т. д.

Например: комната, выкрашенная в синий кажется прохладней, чем есть на самом деле. Потому что, синий замедляет наше сердцебиение, погружает нас в покой.

Психологические свойства цвета

С каждым столетием цветовосприятие все больше и больше несет для нас информации, и теперь есть такое понятие как «цвет культуры», цвет в политических движении и обществ.

ЧТО ВАШ ЛЮБИМЫЙ ЦВЕТ ГОВОРИТ О ВАС [Psych2Go на русском]

ПОЛЕЗНЫЕ СТАТЬИ НА ЭТУ ТЕМУ (нажать на картинку)

Как по цвету автомобиля понять, что за человек за рулем

Автолюбители-мужчины в вопросе выбора цвета автомобиля не уступают капризным автоледи.

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

Серебристый металлик (мокрый асфальт, графит)

За рулём такого авто человек-флегматик. Он всегда уравновешен и предсказуем, не лихач, как правило, не нарушает ПДД. Его успех и благосостояние – результат его упорного труда. Такой не разменивает себя по пустякам, считает себя особенным и ценит своё время.

Бежевый (капучино, кофе с молоком)

Обладать таким автомобилем предпочитают мечтатели и неисправимые романтики. В то же время практичности им не занимать – такое авто не нужно часто мыть.

Серый

Водитель такого авто явно не желает выделяться в потоке машин. Этот цвет помогает ему отгородиться от окружающей действительности. Он никогда не станет «пускать пыль в глаза». Всё напускное ему чуждо.

Жёлтый

На этот цвет автомобиля падки экстраверты. Они способны на многое, чтобы освободиться от повседневной рутины и оказаться в сказке со счастливым концом. Они всегда «в ногу со временем», им присуще новаторство, целеустремленность, что не мешает им свободно адаптироваться в предложенных условиях.

Оранжевый

Цвет солнца, пламени, жизненной энергии. Это подсознательное желание привнести в свою жизнь больше новых ярких эмоций. С другой стороны, владелец оранжевого автомобиля часто склонен к перевозбуждению.

Красный

Водитель такого авто сигнализирует окружающим – я лидер и в жизни, и на дороге. Страстный и властный авантюрист в вечном стремлении вверх. При этом личность вспыльчивая и эгоистичная, такому лучше не становиться «поперёк дороги», – себе дороже будет.

Фиолетовый

Личность творческая, неординарная. Нечасто встречается на дороге, а если подвернётся, то всё внимание будет приковано к нему. Он именно на это и рассчитывает. Такой человек часто принимает важные решения интуитивно, что не мешает ему добиваться поставленных целей.

Синий

Цвет умиротворения и спокойствия. Владелец такого авто заслуживает доверия, на него можно смело положиться. Надежность и практичность сочетаются с гармоничностью и духовностью этой личности. Благодаря деликатности и тактичности легко уступает в спорной ситуации.

КАКОЙ ЦВЕТ ТВОЙ? ПРОЙДИ ЭТОТ ПСИХОЛОГИЧЕСКИЙ ТЕСТ, ЧТОБЫ УЗНАТЬ!

Голубой (лазурный)

Этот небесный оттенок говорит сам за себя, – признак невесомости и беззаботности. С владельцем такого авто не соскучишься, ведь он настоящий «человек-праздник».

Зелёный

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

Белый

Сама элегантность. Выбор нерешительных эстетов. Автомобиль белого цвета придаст уверенности и раскрепощённости. Их владельцы, как правило, неохотно приобретают новые знакомства. Они находятся в вечном поиске идеала, гармонии и чистоты.

Чёрный

Классика жанра с лёгким «налётом» нахальства. Выбравшие этот цвет требовательны не только к себе. У них превосходное самообладание, за которым скрывается желание обмануть свою судьбу. Они живут по принципам, и требуют к себе уважения и признания их важности.

Как программно понять, что текст заданного цвета будет затруднено прочитать на выбранном цвете фона?

Пишу окно лога программы, выводятся сообщения разного цвета в зависимости от типа сообщения. Периодически возникает такая комбинация цветов, что текст сложно прочитать. Хочу динамически менять цвет текста в зависимости от цвета фона, чтобы было не проблематично воспринимать информацию.

Есть два цвета представленные в RGB (Color). Первый цвет — это цвет текста, второй цвет — это цвет фона. Как программно понять, что цвет текста будет сложно различим на цвете фона. Мне кажется есть достаточно простое решение, но никак не могу до него додуматься. Порог выберу опытным путем, чтобы менять цвет текста, но не могу понять, что нужно сравнить в этих цветах, чтобы 100% мог утверждать: «Да, сложности прочтения текста не будет».

ЧТО ОЗНАЧАЕТ ВАШ ЛЮБИМЫЙ ЦВЕТ

2 ответа 2

Я думаю самый простой способ — это взять длины векторов цвета фона и текста (SQRT(R^2+b^2+G^2)) И вычесть их друг из друга — если разность маленькая — то плохо видно. Можно наверное ещё перегнать в монохромность (там примерно как длинна только с определёнными коэфицентами основанными на восприятии цвета глазом) и так же проверить.

  • Можете также воспользоваться гайдлайнами W3C Color Readability, основанных на переводе в YIQ color space.

Color visibility can be determined according to the following algorithm:

Two colors provide good color visibility if the brightness difference and the color difference between the two colors are greater than a set range.

Color brightness is determined by the following formula: ((Red value X 299) + (Green value X 587) + (Blue value X 114)) / 1000

Note: This algorithm is taken from a formula for converting RGB values to YIQ values. This brightness value gives a perceived brightness for a color.

Color difference is determined by the following formula: (maximum (Red value 1, Red value 2) — minimum (Red value 1, Red value 2)) + (maximum (Green value 1, Green value 2) — minimum (Green value 1, Green value 2)) + (maximum (Blue value 1, Blue value 2) — minimum (Blue value 1, Blue value 2))

The range for color brightness difference is 125. The range for color difference is 500.

  • См. также http://goo.gl/H7Q5d

Всё ещё ищете ответ? Посмотрите другие вопросы с метками c# или задайте свой вопрос.

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

  • Блог
  • Facebook
  • Твиттер
  • LinkedIn
  • Instagram

дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.5.20.39353

Как выбрать свой цвет?

Добавить комментарий