|
|||||
Графика и обработка изображений. Фракталы.Перевод цветов из режима RGB в HSV.Смит предложил построить модель субъективного восприятия в виде объемного тела HSV (цветовой тон, насыщенность, светлота). Hасыщенность меняется от 0 до 1. Отметим, что насыщенность зависит от цветового охвата те от расстояния от оси до границы для каждого V. При S=1 цвета или их дополнения полностью насыщенны. Hенулевая линейная комбинация 3 основных цветов не может быть полностью насыщенна. Если S=0, то тон H неопределен, те на центральной оси находятся ахроматические, серые цвета. Модель HSV соотвествует тому, как составляют цвета художники. Чистым пигментам отвечают значения S=1, V=1; разбелам - цвета с увеличенным содержанием белого, те с меньшим S; оттенкам - цвета с уменьшенным V, к-рые получаются при добавлении черного. Тон изменяется при уменьшении как V так и S. Преобразование из цветового пространства RGB->HSV проводиться по данному ниже алгоритму, также взятому у Смита: RGB - остновные цвета (0-1), H - цветовой тон (0-360ш), 0ш - красный S - насыщенность (0-1) V - светлота (0-1) MAX - функция определения максимума MIN - функция определения минимума /Определение светлоты/ V=MAX(R, G, B) /Определение насыщенности/ TEMP=MIN(R, G, B) if V=0 then S=0 else S=(V-TEMP)/V end if /Определение цветового тона/ if S=0 then H=Hеопределенность else Cr=(V-R)/(V-TEMP) Cg=(V-G)/(V-TEMP) Cb=(V-B)/(V-TEMP) /Цвет между желтым и пурпурным/ if R=V then H=Cb-Cg /Цвет между голубым и желтым/ if G=V then H=2+Gr-Cb /Цвет между пурпурным и голубым/ if B=V then H=4+Cg-Cr H=H*60 /Приведение к положительным величинам/ if H<0 then H=H+360 end if finishВзято из книги Д. Роджерс "Алгоритмические основы машинной графики". Вверх по странице, к оглавлению и навигации.
|