| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > 24 bit -> grayscale |
| Автор: stab 21.6.2003, 13:14 |
| такая проблемка: при переводе в оттенки серого по (r + g + b) / 3, цвета с одинаковой насыщенотью (чисто синий, чисто красный) получаются одинакового по яркости серого цвета. что интересно фотошоп делает этот перевод, как то подругому: ![]() заметьте, что синий, зеленый и красный не слились хотя имеют одинаковою насыщенность. вопрос: как это делает фотошоп? и какие еще способы есть кроме (r + g + b) / 3? |
| Автор: dm9 21.6.2003, 13:54 |
| Составляющие цвета не одинаково чувствуются нашим глазом - поэтому просто складывать нельзя: нужны особые коэффициенты, как вот здесь, например: http://www.sources.ru/delphi/graphics/convert_color_to_shade_gray.shtml |
| Автор: stab 21.6.2003, 16:07 |
| dm9 спасибо |
| Автор: MuToGeN 25.6.2003, 11:10 | ||
|
| Автор: PostEr 30.7.2003, 17:58 |
| Это может быть связано с размерами рецепторов и длинами волн красного, зелёного и синего цветов. |
| Автор: PostEr 31.7.2003, 16:34 |
| Согласно литературе (Е.В.Шикик, А.В.Боресков "Компьютерная графика.Полигональные модели.")... Колбочки бывают трёх типов, отвеающих за чувствительность к длинным, средним и коротким волнам. Выдаваемое колбочкой значение являетяс результатом интегрировния спектральной функции I(L) с весовой функцией чувствительности. ( Прим. Графики зависимости приведены в книге. ) Видно, что у одной из них пик чувствительности приходится на волны с короткой длиной волны (синий цвет), у другой - на волны средней длины (жёлто-зелёный цвет), а у третьей - на волны с большой длиной волны (кр.цвет). Таким образом, глаз человека ставит в соответствие спектральной функции I(L) тройку чисел (RGB), получаемую по формулам R = (интеграл) I(L) PR (L)dL, G = (интеграл) I(L) PG (L)dL, B = (интеграл) I(L) PB (L)dL, ... Одним словом читайте книгу, а основная мысль - наименьшая чувствительность приходится на синий , а наибольшая на жёлто-зелёный |