Einzelnen Beitrag anzeigen

Phantom1

Registriert seit: 20. Jun 2003
282 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: "Verfärbte" Bilder vergleichen.

  Alt 26. Nov 2006, 17:26
Hier mein Vorschlag:

Delphi-Quellcode:
function CompareBitmaps(Bitmap1, Bitmap2: TBitmap): Double;
var
  xy: integer;
  P1, P2: PRGBTriple;
  g1, g2: Byte;
  PixelWeight: Double;
begin
  Result:=100.0;
  PixelWeight:=100/(Bitmap1.Width*Bitmap1.Height)/255;
  Bitmap1.PixelFormat:=pf24bit;
  Bitmap2.PixelFormat:=pf24bit;
  P1:=Bitmap1.ScanLine[Bitmap1.Height-1];
  P2:=Bitmap2.ScanLine[Bitmap2.Height-1];
  for xy:=1 to Bitmap1.Height*Bitmap1.Width do begin
    g1:=(P1^.rgbtRed+P1^.rgbtGreen+P1^.rgbtBlue) div 3;
    g2:=(P2^.rgbtRed+P2^.rgbtGreen+P2^.rgbtBlue) div 3;
    Result:=Result-ABS(g1-g2)*PixelWeight;
    Inc(P1);
    Inc(P2);
  end;
end;
Verglichen wird hier nur die Helligkeit und gibt als Ergebnis die Ähnlichkeit in Prozent an. Man müsste dann nur noch entscheiden ab wieviel Prozent die Bilder als gleich gelten...

mfg
  Mit Zitat antworten Zitat