Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2007.12.30;
Скачать: [xml.tar.bz2];

Вниз

изменить яркость, контраст и цветность   Найти похожие ветки 

 
ndg   (2007-02-20 19:17) [0]

Подскажите, может кто сталкивался с этим:
как программно, не используя доп. компоненты, изменять яркость, контрастность и цветность изображения ?
Если поможете кодом, буду благодарен.


 
TRUNK ©   (2007-02-21 10:31) [1]

Какого изображения? Изображения где?


 
Jeer ©   (2007-02-21 16:22) [2]

от цветового пространства RGB перейти к HSL, а затем обратно.


 
Ricks ©   (2007-02-21 21:41) [3]

Если для тебя яркость <=> Lightness (что-то типа светлоты), то добавляй просто к каждому RGB пикселю значение, на которое ты хочешь изменить якрость
new.r:=old.r + a;
new.g:=old.g + a;
new.b:=old.b + a;


 
TRUNK ©   (2007-02-22 10:29) [4]


> Ricks ©   (21.02.07 21:41) [3]

Такое изменение может привести к искажению оттенка.
Изменять нужно так:

new.r := trunc(old.r*k);
new.g := trunc(old.g*k);
new.b := trunc(old.b*k);

И следить при этом, чтобы значения не переходили
через 0 при уменьшении и через 255 при увеличении яркости.
А вообще проще использовать HSV, в этом я согласен с [2] Jeer ©.


 
MBo ©   (2007-02-22 10:32) [5]

>TRUNK ©   (22.02.07 10:29) [4]
>Изменять нужно так:new.r := trunc(old.r*k);

Это контраст, а не яркость.

Intensity = Brigtness + Contrast * Value


 
Ricks ©   (2007-02-23 16:31) [6]


> Это контраст, а не яркость

Это даже не контраст. В фотошопе это levels (уровни). Согласись, если k >= 255 тогда вся картинка будет белой, за исключением точек, в которых одна из составляющих RGB равна нулю, а если k = 0 тогда ВСЕ черное, а если k < 0, тогда что?


 
Pavia ©   (2007-02-24 01:40) [7]

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

Чтобы изменить кантрасность нужно растянуть, сжать интенсивность. Другими словами в самом простом случаи нам хватит умножения.
А вот чтобы изменить яркость нам нужно увеличить, уменьшить интенсивность. Другими словами нужно либы прибавить либы удалить некоторое значение.



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2007.12.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
6-1176735518
Dmitry_177
2007-04-16 18:58
2007.12.30
Остановить выполнение accept или recv


15-1196342882
моряк
2007-11-29 16:28
2007.12.30
как стать нормальным программистом!


3-1188126422
Добрый
2007-08-26 15:07
2007.12.30
не могу сделать INSERT через ADO в MSSQL базу


15-1196174838
All More system
2007-11-27 17:47
2007.12.30
Автопоиск в висте работает в фоновом режиме


2-1196847194
Dilmo
2007-12-05 12:33
2007.12.30
Программно открыть заданную папку





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский