Диапазон RGB для холодных и теплых цветов? - PullRequest
12 голосов
/ 06 января 2011

Каковы диапазоны холодных и теплых цветов (http://www.diy -bathroom-remodel.com / images / color_wheel.gif ) в RGB?

Ответы [ 4 ]

43 голосов
/ 06 января 2011

Взяв изображение, на которое вы ссылаетесь, в качестве ссылки на то, что является «теплым» и «холодным», мы получаем следующее.

Colour wheel

  • Самый горячий цветполностью красный (R = 255, G = 0, B = 0).
  • Самый холодный цвет полностью синий (R = 0, G = 0, B = 255).

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

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

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

colourwheel

Здесь показан каждый 24-битный цвет (8 бит для каждого из R, G и B) и RGBотображаются значения для верхнего, правого, нижнего и левого цветов.На мой взгляд, здесь больше «холодных» цветов, чем «теплых».Надеюсь, что это поможет вам определить значения RGB для того, что вы воспринимаете как прохладные и теплые цвета.

Бонус: На изображении выше вы также можете увидеть цвета, выраженные в оттенке,насыщенность и значение (HSV) цветовой модели.Оттенок в основном кодирует цвет.Насыщенность кодирует, насколько «полный» цвет - чем меньше насыщенность, тем более «мрачный», т.е.белый.Значение определяет, насколько он темный - меньшее значение делает его более черным, а также делает насыщенный белый более серым.Оттенок изменяется от 0 до 360 и соответствует углу окружности, где 0 - полностью красный, 90 - неоново-зеленый, 180 - ярко-синий, 270 - голубовато-фиолетовый, а 360 - снова красный.S и V изменяются от 0 до 100 и влияют на точный оттенок - эти примеры с S = V = 100.

На мой взгляд, значения H в диапазонах 0-80 и 330-360 теплые, аH> 80 и H <330 холодные (приблизительно). </p>

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

Бонус 2: Все вышеперечисленное предполагает субъективную оценку того, что тепло и что круто.Я думаю, что единственный способ сделать объективное измерение цветовой температуры - это измерить ее и выразить в температурной шкале.Часто Кельвин, кажется, используется.Эта мера учитывает не только оттенок цвета, но и его яркость (или сколько света он излучает).Если у вас современный монитор, он, вероятно, имеет настройку температуры с некоторыми значениями Кельвина на выбор.Можно рассчитать температуру каждого цвета RGB на вашем дисплее, если вы знаете температуру своего белого (баланс белого).Однако этот расчет очень сложен, и я не знаю, как это сделать. Брюс Линдблум может оказаться хорошим источником дополнительной информации или любой книги по науке о цвете.Но я думаю, это больше, чем вы рассчитывали со своим вопросом ...; -)

4 голосов
/ 06 января 2011

Мне кажется,

if (B>R) { 
    color=cool
} else { 
    color=warm
}

- довольно хорошее приближение.Вы можете проверить это на своем цветовом круге, используя: http://www.colorzilla.com/firefox/

1 голос
/ 31 марта 2014

уже ответил, но нужно добавить это:

Если вас интересует физическая температура и цветовые зависимости , тогда вам нужна эта шкала:

Black body Temperature color

Это цвет света, излучаемого от черного тела данной температуры . В астрономии это используется для классификации цвета звезд (например, BV color index ).

Может также использоваться для косвенных измерений температуры.

0 голосов
/ 26 ноября 2018

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

В RGB:

red = 0
blue = 0

if (red > blue) {
  isWarmColor = true
  isCoolColor = false
}
else if (red < blue) {
  isWarmColor = false
  isCoolColor = true
}
else {
  isWarmColor = false
  isCoolColor = false
}

В HSL:

hueAngle = 0

if (hueAngle < 0 || hueAngle > 360 || hueAngle == 90 || hueAngle == 270) {
  isWarmColor = false
  isCoolColor = false
}
else if (hueAngle > 90 && hueAngle < 270) {
  isWarmColor = false
  isCoolColor = true
}
else if (hueAngle < 90 && hueAngle > 270) {
  isWarmColor = true
  isCoolColor = false
}
...