Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Bitmap auf 8bit mittels vorhandener Palette

  Alt 27. Mär 2010, 21:53
Das Skalarprodukt kommt mit rein beim Quadrieren, die Differenz der Skalarprodukte hat aber nicht wirklich viel aussagekraft. (255, 0, 0) würde dann zum Beispiel identisch mit (0, 0, 255) sein.
In Pseudocode eher so:
Delphi-Quellcode:
type
  TRGBColor = class
  public
    r, g, b: Integer;
    constructor Create(ar, ag, ab: Integer);
  end;
var
  color1, color2, colorDiff: TRGBColor;
  distance: Double;
begin
  colorDiff := TRGBColor.Create(color2.r-color1.r, color2.g-color1.g, color2.b-color1.b);
  distance := sqrt(colorDiff.r*colorDiff.r + colorDiff.g*colorDiff.g + colorDiff.b*colorDiff.b);
.
.
end;
Geometrisch interpretiert hast du einen Farbwürfel, und ermittelst mit der Differenz den Vektor von color1 zu color2. Je kürzer der ist, desto - wortwörtlich - näher sind die Farben beieinander.
"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