Как найти средний цвет между двумя

Цветосмеситель

Сервис для подбора палитры цветов путем нахождения промежуточныx значений между двумя заданными

Формат: Hex
RGB
RGB%
Первый цвет:  
Второй цвет:  
Количество промежуточных цветов:
замес цвета сброс значений
Палитра цветов:  
 
 
 
 
 
 
 
 
 
 
 

Задайте граничные цвета или выберите их из «безопасной» палитры справа.

Определите количество промежуточных смесевых цветов.

Нажмите кнопку замеса и получите палитру качественно замешанных красок.

Укажите цвета для смешивания HEX-кодом или выберите из палитры нажав на блок цвета. Смешанный цвет отображается в четырёх форматах: HEX, RGB, HSL и CMYK.

🎨 Режим смешивания — {{mode}}

RGB, по рямой цветового круга
HSL, по дуге цветового круга

Есть две модели смешивания: адитивное и субтрактивное смешение цветов. Можно почитать тут https://creativshik.com/pochemu-vret-monitor/

Адитивное будет так (оно «работает» при световом смешивании лучей, в некоторых графических программах):

r =  (r1 + r2 ) / 2;
g =  (b1 + b2 ) / 2;
b =  (b1 + b2 ) / 2;

Cубтрактивное

r =  // TODO:
g =  
b =  

Второе «смешивание» цветов похоже на привычное смешивание «акварельных красок» на белом листе. Ещё такое смешивание можно включить в Corel Draw.

Адитивное — «приближает» цвета к чёрному. А субтрактивное — к белому.

Если стоит задача определить «ближайший» цвет,
то используется сумма rgb c коефициентами

Q = r * Kr + g* Kg +  b*Kb;

Где Q- будет «вес» по которому можно определить схожесть. этой формулой переводят изображение в чёрнобелое. Для разных преобразований используют разные коефициенты. Стандартные для ч/б где-то видел — найду запишу.


Коефициенты нашёл, вот

Y=0.299*R+0.587*G+0.114*B (В.Порев «Компьютерная графика», BHV, 2002г. —
страница 41.)

Y= 0.2125R + 0.7154G + 0,0721В (Фотошоп ссылка )

При попытке вставить коефициенты — они в формуле сокращаются, т.е. для Y(R=255,G=0,B=0)=76,5 , Y(R=0;G=255;B=0)=150,45. Средний цвет будет (128,128,0), но и средняя яркость будет тоже средней — 113,48. Если вы хотите «поднять» яркость до max(Y(цвет1),Y(цвет2)) то вы можете пересчитать цвет, учитывая формулу приведённую выше.

Если у вас задача «не потерять яркость», тогда ставим задачу — сохранить максимальную яркость.

 Y(Red=255) = 76,5   Y(Green=255) = 150,45,  Y=(Red+Green) = 113,48;
 t = Ymax / Y =  150,45/113,48 = 1,325 
 Тогда (адитивное смешение):
 r` = (r1 + r2)*t/2  = (255 + 0)*1,325/2 = 170
 g` = (g1 + g2)*t/2  = (0 + 255)*1,325/2 = 170
 b` = (b1 + b2)*t/2  = (0 + 0)*1,325 / 2 = 0
 Y(R=170,G=170,B=0) = 150,45

Для субтрактивного смешения можно написать аналогичную формулу. Можно так же в цикле прибавлять еденицу — выйдет похожее значение (R=169,G=127,B=42). Внизу пример, сначала R (255,0,0), потом результат «затемнённый» R+G (128,128,0), Потом скорректированый по яркости (170,170,0), потом сделаный инкрементом (169,127,42). Потом зеленый (0,255,0)
Сложение

И последнее, ставьте проверки что б компонента не выходила за пределы [0,255], если меньше 0 то присваивать 0, если более 255 то ставить 255.

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

  1. Как комбинировать цвета RGB?
  2. Как найти средний цвет изображения?
  3. Как найти средний шестнадцатеричный цвет?
  4. Как найти среднее значение RGB изображения в Python?
  5. Как вы складываете изображения RGB?
  6. Как смешать два цвета вместе?
  7. Как вы рассчитываете RGB?
  8. Какой средний цвет Вселенной?
  9. Как узнать яркость изображения?
  10. Как преобразовать шестнадцатеричные коды в RGB?
  11. Что такое смешивание цветов?
  12. Какой цвет делают красный и зеленый?

Как комбинировать цвета RGB?

Чтобы начать микширование в RGB, представьте каждый канал как ведро с красной, зеленой или синей краской. При 8 битах на канал у вас есть 256 уровней детализации для того, сколько этого цвета вы хотите смешать; 255 — это весь ковш, 192 = три четверти, 128 = половина ковша, 64 = четверть ковша и т. Д.

Как найти средний цвет изображения?

Обычный метод получения среднего статистического значения каждого цветового канала в изображении довольно тривиален:

  1. Загрузить в пикселе.
  2. Распаковать отдельные цветовые каналы.
  3. Суммируйте значения канала в аккумулятор.
  4. Когда вы просуммируете их все, разделите эти суммы на общее количество пикселей.

Как найти средний шестнадцатеричный цвет?

Чтобы вычислить среднее значение шестнадцатеричной строки, вам необходимо:

  1. Преобразуйте шестнадцатеричную строку в целое число (что-то похожее на parseInt (‘0000ff’, 16))
  2. Разделить компоненты цвета.
  3. Рассчитайте среднее значение для каждого цветового компонента.
  4. Восстановите окончательное значение из цветовых компонентов.

Как найти среднее значение RGB изображения в Python?

Использовать PIL. Изображение. Изображение. getpixel () для возврата значений RGB пикселя

  1. filename = «образец.jpg «
  2. img = Изображение. открыть (имя файла)
  3. img. show () Показать изображение.
  4. цвета = img. getpixel ((320,240)) Получить значения RGB по координате x = 320, y = 240.
  5. печать (цвета)

Как вы складываете изображения RGB?

Используйте следующие инструкции для укладки файлов FITS:

  1. Запустите DSS и выберите Открыть файлы изображений.
  2. Выберите пять файлов Luminance (имена файлов с _l_ в них)
  3. Нажмите «Проверить все».
  4. Нажмите «Сгруппировать проверенные изображения».

Как смешать два цвета вместе?

Сделайте первый шаг

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

Как вы рассчитываете RGB?

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

Какой средний цвет Вселенной?

И цвет Вселенной … Бледно-бирюзовый. Errrr, сделай это бежевым. Ранее в этом году астрономы из Университета Джонса Хопкинса произвели фурор на заседании Американского астрономического общества, когда объявили, что средний свет Вселенной — бирюзовый.

Как узнать яркость изображения?

4 ответа

  1. Преобразование изображения в оттенки серого, возврат средней яркости пикселей. …
  2. Преобразование изображения в оттенки серого, возврат RMS яркости пикселей. …
  3. Среднее количество пикселей, затем преобразование в «воспринимаемую яркость». …
  4. RMS пикселей, затем преобразовать в «воспринимаемую яркость». …
  5. Рассчитайте «воспринимаемую яркость» пикселей, а затем верните среднее значение.

Как преобразовать шестнадцатеричные коды в RGB?

Первое значение

  1. Возьмите первое число 220 и разделите на 16. 220/16 = 13.75, что означает, что первая цифра шестизначного шестнадцатеричного цветового кода — 13, или D.
  2. Возьмите остаток от первой цифры, 0.75, и умножьте на 16. 0.75 (16) = 12, что означает, что вторая цифра шестизначного шестнадцатеричного цветового кода — 12, или C.

Что такое смешивание цветов?

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

Какой цвет делают красный и зеленый?

Если все три основных цвета света смешаны в равных пропорциях, результат будет нейтральным (серый или белый). Когда красный и зеленый свет смешиваются, результат становится желтым.

I have 2 string representations of colors (ex: «#FFFFFF» and «#000000«) and I am looking for a way to get the median color of these two colors programmatically. The color I call «median» would be the color that meets these two in the center.

I need this in order to draw a gradient in 2 steps :

  • 1 gradient from the first color to the median
  • 1 gradient from the median to the second color

So that it looks like 1 gradient from the first to the second color, which I cannot do.

How can I achieve that?

pavel's user avatar

pavel

26.4k10 gold badges43 silver badges61 bronze badges

asked Jul 23, 2014 at 12:16

halpsb's user avatar

3

I would process each RGB component separately. You can parse the hex into a number using Long.valueOf(). Average your two values (rounding as needed) and then going to back to hex using Long.toString() padding out to two digits.

Some example code that I havn’t tested:

     String colour1 = "#FFFFFF";
     String colour2 = "#000000";

     StringBuilder result = new StringBuilder("#");
     for (int i=0;i<3;i++) {
         String h1 = colour1.substring(i*2+1, 3+(i*2));
         String h2 = colour2.substring(i*2+1, 3+(i*2));

         long l1 = Long.parseLong(h1, 16);
         long l2 = Long.parseLong(h2, 16);

         long mid = (l1 + l2) / 2; //truncating not rounding

         String midStr = Long.toString(mid, 16);
         if (midStr.length() == 1) {
             result.append("0");
         }
         result.append(midStr.toUpperCase());

     }

answered Jul 23, 2014 at 12:26

brain's user avatar

brainbrain

5,4861 gold badge26 silver badges29 bronze badges

0

Понравилась статья? Поделить с друзьями:
  • Как найти камушек с кольца
  • Как исправить документ сканированием
  • Физика формулы как найти количество теплоты
  • Как найти билет ржд купленный через интернет
  • Как найти спрятанное слово в тексте