Вниз
Скачать: CL | DM;

Алгоритм изменения контраста   Найти похожие ветки 

 
dimon_prorammer   (2004-04-21 10:23) [0]

Подкинте пожалуйста алгоритм изменения контраста для 24 - битного
битмапа.


 
[lamer]Barmaglot ©   (2004-04-21 11:16) [1]

RTFM?

http://algolist.manual.ru/graphics/filter/index.php


 
KA_ ©   (2004-04-21 11:26) [2]

Повышение/снижение контрастности – это умножение/деление значения каждого канала на константу.
Яркость считается по формуле Y := 0.3 * R + 0.59 * G + 0.11 * B
Но есть один ньюанс - чтобы внешний вид изображения не искажался, средняя яркость после изменения контрастности должна остаться прежней. Поэтому сначала вычисляешь среднюю яркость изоражения, а потом изменяешь контрастность по формуле Y := ChangeCoeff * (Y - AverageY) + AverageY


 
VMcL ©   (2004-04-21 11:51) [3]

>>[lamer]Barmaglot ©  (21.04.04 11:16) [1]

Не RTFM, а STFW :)


 
zoltan   (2004-04-21 17:09) [4]

Я просто в панике что за люди пошли человек задал вопрос, а вы разводите флуд, формули!!!! Держи

procedure Contrast(var clip: tbitmap; Amount: Integer);
var
p0:pbytearray;
rg,gg,bg,r,g,b,x,y:  Integer;
begin
 for y:=0 to clip.Height-1 do
 begin
   p0:=clip.scanline[y];
   for x:=0 to clip.Width-1 do
   begin
     r:=p0[x*3];
     g:=p0[x*3+1];
     b:=p0[x*3+2];
     rg:=(Abs(127-r)*Amount)div 255;
     gg:=(Abs(127-g)*Amount)div 255;
     bg:=(Abs(127-b)*Amount)div 255;
     if r>127 then r:=r+rg else r:=r-rg;
     if g>127 then g:=g+gg else g:=g-gg;
     if b>127 then b:=b+bg else b:=b-bg;
     p0[x*3]:=IntToByte(r);
     p0[x*3+1]:=IntToByte(g);
     p0[x*3+2]:=IntToByte(b);
   end;
 end;
end;



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.02 c
3-1086862478
quQuev
2004-06-10 14:14
2004.07.04
OLAP, Oracle, трехзвенка. Как лучше реализовать.


14-1087041779
juiceman
2004-06-12 16:02
2004.07.04
Как установить в 98ой сетевое окружение ?


3-1086602298
inic
2004-06-07 13:58
2004.07.04
Отмена запроса, но как ???


3-1086771578
dina
2004-06-09 12:59
2004.07.04
Какая функция возвращает разницу между двумя датами


3-1086786166
alex_pv
2004-06-09 17:02
2004.07.04
ClientDataSet как добраться до полученных данных???




   Наверх