Thema: Delphi Gamma-Korrektur von Bild

Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Gamma-Korrektur von Bild

  Alt 8. Jul 2008, 15:01
Eine Gammakorrektur ist im Grunde nichts weiter, als die Formel "Farbe^Gamma", wobei Farbe die jeweiligen Anteile (RGB) sind, auf einen Bereich von 0..1 skaliert.

Delphi-Quellcode:
var
  c1, c2: TColor;
  Gamma: Double;
begin
  Gamma := 1.2;
  c2 := rgb(
    trunc(Power((RedComponent(c1)/255), Gamma)*255),
    trunc(Power((GreenComponent(c1)/255), Gamma)*255),
    trunc(Power((BlueComponent(c1)/255), Gamma)*255));
Und das dann für jeden Pixel.


Eine andere, wie ich finde aber sauberere Methode ist es, wenn man den Gammawert für die Helligkeit ändert. Dafür müsstest du dann die Farben zunächst in das HSB-Farbmodell umrechnen, die Helligkeitskomponente auf 0..1 skalieren, Gammakorrektur machen, zurückskalieren, und wieder in RGB zurückrechnen. Oben geschriebenes dürfte aber die Methode sein, die fast immer eingesetzt wird.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat