AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Farbwerte vergleichen
Thema durchsuchen
Ansicht
Themen-Optionen

Farbwerte vergleichen

Ein Thema von HannosG · begonnen am 26. Apr 2007
Antwort Antwort
Benutzerbild von HannosG
HannosG

Registriert seit: 2. Jul 2006
42 Beiträge
 
Delphi 2010 Professional
 
#1

Farbwerte vergleichen

  Alt 26. Apr 2007, 22:30
Es wurde hier schon des öfteren über das Vergleichen von zwei Farbwerten diskutiert.
Da sich weder RGB (RGB-Probleme, wenig Berücksichtigung der menschlichen Farbwahrnehmung)
noch HSV (Sprungstelle bei V von 360° zu 0°; bei Werten in der Nähe von schwarz und weiß werden S und V irrelevant, V ist in Graustufen undefiniert)
gut dazu eignen, möchte ich hier eine andere Variante vorstellen.

Es handelt sich hierbei um den I1I2I3-Farbraum (Wikipedia).
(Warum dieser Farbraum so praktisch ist, erfährt man in Wikipedia )

Als Funktion, die die Farbabweichung nun feststellen soll, sieht das ganze so aus:
Delphi-Quellcode:
function GetPixelAbweichung(Farbe1,Farbe2: TColor): Byte;
type
Farbwerte = record
  I1,I2,I3: Integer;
  end;

var
R,G,B: Byte;
Farbe1I, Farbe2I, DeltaI: Farbwerte;

begin
R:=GetRValue(Farbe1);
G:=GetGValue(Farbe1);
B:=GetBValue(Farbe1);
Farbe1I.I1:=(R+G+B)div 3; // Umrechnung: RGB in I1I2I3
Farbe1I.I2:=(R-B)div 2;
Farbe1I.I3:=(2*G-R-B)div 4;

R:=GetRValue(Farbe2);
G:=GetGValue(Farbe2);
B:=GetBValue(Farbe2);
Farbe2I.I1:=(R+G+B)div 3; // Umrechnung: RGB in I1I2I3
Farbe2I.I2:=(R-B)div 2;
Farbe2I.I3:=(2*G-R-B)div 4;

DeltaI.I1:=Abs(Farbe1I.I1-Farbe2I.I1); // Abweichung (Differenz) der Einzelwerte
DeltaI.I2:=Abs(Farbe1I.I2-Farbe2I.I2);
DeltaI.I3:=Abs(Farbe1I.I3-Farbe2I.I3);

Result:=Max(Max(DeltaI.I1,DeltaI.I2),DeltaI.I3); // Maximale Abweichung

{Result:=Max(Abs(GetRValue(Farbe1)-GetRValue(Farbe2)),  // (Das wäre Farbabweichung über RGB)
        Max(Abs(GetGValue(Farbe1)-GetGValue(Farbe2)),
        Abs(GetBValue(Farbe1)-GetBValue(Farbe2)))); }

end;
Anbei zwei Testprogramme, die mit dieser Funktion arbeiten:
Angehängte Grafiken
Dateityp: bmp farbabweichung_203.bmp (1,15 MB, 40x aufgerufen)
Angehängte Dateien
Dateityp: zip farbwerte_vergleichen_182.zip (444,2 KB, 13x aufgerufen)
Hanno Günther
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz