85 / 77 / 13
Регистрация: 03.09.2009
Сообщений: 346
|
||||||
1 | ||||||
Как смешать 4 RGB цвета?30.01.2011, 00:58. Показов 7979. Ответов 10
Метки нет Все метки)
(
Если нарисовать сетку из чередующихся линий 4-х цветов и посмотреть на нее с некоторого удаления - она сливается в один цвет. Кто знает по какой формуле?
Вот этот метод дает неправильный результат, а других не нашел:
с1 - (0, 255, 0) с2 - (255, 91, 15) с3 - (174, 15, 255) с4 - (255, 240, 242) при смешивании должен получится результат - (213,183,191)
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
30.01.2011, 00:58 | |
Ответы с готовыми решениями:
10
|
(Yellow_Duck)
1261 / 130 / 15
Регистрация: 16.10.2008
Сообщений: 733
|
||||||
30.01.2011, 23:39 | 2 | |||||
Добавлено через 12 минут Я проверил, в данном примере, что вы написали, получается более темный цвет, согласно этой функции. Видимо цвета нельзя так смешивать последовательно. Получается (202, 167, 186).
0
|
6 / 6 / 0
Регистрация: 24.11.2010
Сообщений: 25
|
|
31.01.2011, 10:29 | 3 |
Доброго времени суток
![]() Цвета можно складывать по закону Грассмана. Например: Та=wa1*P1+wa2P2+wa3P3 Тв=wв1*P1+wв2P2+wв3P3 Та + Тв = (wa1 + wb1) * P1 + (wa2 + wb2) * P2 + (wa3 + wb3) * P3 но есть фишка, цветовое пространство RGB, наложено на длинны волн излучения с перекрытием (см. картинку1) Если зафиксировать значение яркости для четырех цветов, предполагая. что источник один, а смешивается отражательная способность предмета, то можно получить: rR + gG + bB = Const rr = rA(r1 + r2 + r3 + r4) gg = gA(g1 + g2 + g3 + g4) bb = bA(b1 + b2 + b3 + b4) rR + gG + bB = rrR + ggG + bbB Множитель можно вынести за цвета, получив универсальную константу rgbC, которая уравновесит все: rR + gG + bB = rgbC (R(r1 + r2 + r3 + r4) + G(g1 + g2 + g3 + g4) + B(b1 + b2 + b3 + b4)) В приведенном выше посте от MadMag, при сложении 2-х цветов пример: возьмем 4 числа 1, 2, 1, 2 если 1 + 2 + 1 + 2 = 6, и 6/4= 1,5 , то (1 + 2 = 3) 3/2 = 1,5 (1,5 + 1 = 2,5) 2,5/2 = 1,25 (1,25 + 2 = 3,25) 3,25/2= 1,625 Как же сложить последовательно цвета, и сохранить яркость? Если мы знаем, что значение цвета в RGB системе цветов, меняется от 0 до 255 то предполагаем минимальную яркость 0, а максимальную 3 * 255 = 765 мы можем нормировать значения, и использовать взвешенные коэффициенты: берем последовательность 1, 2, 1, 2 допустим это R (1/255)R1 + (2/255)R2 = (x/255)R12 -не получается чего-то ![]() х = 3 и та-же фигня. , или нет... (3/255)R12 + (1/255)R3 = (x/255)R123 x = 4 (4/255)R123 + (2/255)R4 = (x/255)R1234 x = 5 просто складывать тоже не дело, яркость суммируется попробуем перемножить: 1/255*2/255= (3,0757400999615532487504805843906e-5) * 1/255 = 1,2061725882202169602943061115257e-7 * 2/255 = 9,460177162511505570935734208045e-10 тоже фигня какая то попробуем приводить к единице R1 + R2 +... =1 тогда (1 + 2)x = 1 x = 1/3 (1+2)x/2= 0.5 (0.5 + 1)x = 1 x = 0,66666666666666666666666666666667 (0.5+1)x/2 = 0.5 (0.5+2)x = 1 x = 0.4 (0.5+2)x/2 = 0.5 Мы получили три числа, о чем они непонятно: 1/3 0,66666666666666666666666666666667 0.4 если использовать как коэффициент, то получим: (1+2)*1/3=1 (1+1)*2/3=4/3 = 1(1/3) (4/3+2)*0,4= 1(1/3) их сумма 1,4 среднее 0,46666666666666666666666666666667 а если (1 + 2)x = 1 x = 1/3 (1+2)x/2= 0.5 2 * (1/3) + 1 = 5/3 = 1,6666666666666666666666666666667 (5/3 + 1)х = 1 х = 3/8 (5/3 +1)х/2 = 1(1/3) 1 * (3/8) + 5/3 = 9/24 + 40/24 = 49/24 = 2 (1/24) Если посмотреть для последовательности 1,2,1,2 описательную статистику, то получим: Mean 1,5 Standard Error 0,288675135 Median 1,5 Mode 1 Standard Deviation 0,577350269 Sample Variance 0,333333333 Kurtosis -6 Skewness 0 Range 1 Minimum 1 Maximum 2 Sum 6 Count 4 Largest(1) 2 Smallest(1) 1 Confidence Level(95,0%) 0,918693116 и сравним ее с последовательностью 1,2,1 Mean 1,333333333 Standard Error 0,333333333 Median 1 Mode 1 Standard Deviation 0,577350269 Sample Variance 0,333333333 Kurtosis #DIV/0! Skewness 1,732050808 Range 1 Minimum 1 Maximum 2 Sum 4 Count 3 Largest(1) 2 Smallest(1) 1 Confidence Level(95,0%) 1,434217577 то ничегошеньки непонятно. Короче я загнался, может, чтото из рассуждений пригодится
0
|
85 / 77 / 13
Регистрация: 03.09.2009
Сообщений: 346
|
|
02.02.2011, 01:57 [ТС] | 4 |
Вроде бы в первых двух постах сложение как раз по закону Грассмана, но результат темнее.
В то же время я взял в фотошопе нарисовал многократную последовательность тонких линий 4-х цветов. Взял, уменьшил масштаб так, чтобы картинка слилась в однотонный цвет, сделал скриншот и посмотрел полученный RGB-цвет (см. пост 1). На глаз соответствие хорошее, но как было получено это значение не совсем понятно. Подозреваю, что при смешении как-то нужно учитывать различное ощущение яркости между R, G и B. Т.е. (0,0,255) кажется темнее, чем (0,255,0), хотя по правилам они одинаковы по яркости.
0
|
239 / 217 / 46
Регистрация: 17.04.2010
Сообщений: 525
|
|
02.02.2011, 11:35 | 5 |
Ключевой момент
0
|
4200 / 1792 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
03.02.2011, 07:44 | 6 |
Кто объяснит такую загадку: цвет 0000FF на глаз темнее, чем 00FF00, но FFFFFF на глаз белый?
0
|
6 / 6 / 0
Регистрация: 24.11.2010
Сообщений: 25
|
|
03.02.2011, 08:49 | 7 |
Зачем смешивать восприятие и физические величины. Ощущение света. вообще субъективно, колбочки палочки, и прочие биологические вещи. Инфракрасное, и ультрафиолетовое излучение, вообще не видно, однако и интенсивность, и яркость у них есть.
0
|
239 / 217 / 46
Регистрация: 17.04.2010
Сообщений: 525
|
|
03.02.2011, 10:10 | 8 |
taras atavin, это не загадка, а аддитивная цветовая модель.
0
|
4200 / 1792 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
04.02.2011, 08:39 | 9 |
Про аддитивность я знаю. Мне не ясно, почему при при смешении основных цветов, воспринимаемых, как цвета различной яркости результирующий цвет не имеет зеленоватого оттенка.
0
|
I ♥ C#
470 / 261 / 25
Регистрация: 07.05.2010
Сообщений: 567
|
|
04.02.2011, 11:40 | 10 |
Шестнадцатеричная RGB-запись цвета не имеет ничего общего с длинами волн и их интенсивностью воздействия на определенные колбочки глаза человека. Ну то есть, связь-то конечно есть, но она не такая линейная и очевидная, как FF0000 + 00FF00 + 0000FF = FFFFFF.
Ссылки по теме: http://ru.wikipedia.org/wiki/Зрение_человека http://ru.wikipedia.org/wiki/Колбочки http://ru.wikipedia.org/wiki/Метамерия_(цвет) http://ru.wikipedia.org/wiki/LAB
0
|
239 / 217 / 46
Регистрация: 17.04.2010
Сообщений: 525
|
|
04.02.2011, 12:02 | 11 |
0
|
04.02.2011, 12:02 | |
Помогаю со студенческими работами здесь
11
Как в DBChart добавить цвета RGB? Как отсканировать Picturebox и получить цвета по RGB?
Как переделать код чтоб использовать RGB цвета, а не стандартные? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |