![]() |
Bilder abgleichen
Hallo,
ich hab einen Algorithmus zum Abgleichen von Bildern. Wenn ein Unterschied (genügend groß) festgestellt wird, dann wird auf einem neuen Bild ein schwarzer Punkt erzeugt. Da es sich um recht viele Bilder handelt und ich Pixel für Pixel abgleiche wollte ich fragen ob es nicht eine schnellere Möglichkeit gibt. Z.B. mit einem Zeiger die Farben der Pixel direkt aus dem Speicher lesen o.ä. weiß aber nicht genau wie das gehen soll. Vielen Danke für Eure Hilfe
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Bild1,Bild2 : TPicture; i,x,y : integer; Bitmap : TBitmap; A : array[0..639,0..479] of integer; begin Bild1 := TPicture.Create; Bild1.LoadFromFile('0.jpg'); for x:= 0 to 639 do for y:= 0 to 479 do A[x,y]:=ColorToRGB(Pi.Bitmap.Canvas.Pixels[x,y]); bild1.Free; for i:=1 to 1000 do begin Bild2 := TPicture.Create; Bitmap := TBitmap.Create; Bild2.LoadFromFile(IntToStr(i)+'.jpg'); Bitmap.Width:=640; Bitmap.Height:=480; for x:= 0 to 639 do for y:= 0 to 479 do begin diff:=ColorToRGB(B.Bitmap.Canvas.Pixels[x,y])-A[x,y]; if diff<0 then diff :=-diff; if diff>1000000 then Bitmap.Canvas.Pixels[x,y]:=clblack; end; Bitmap.SaveToFile('B'+IntToStr(i)+'.bmp'); Bitmap.Free; Bild2.Free; end; end; |
Re: Bilder abgleichen
Der Trick besteht darin
![]() ...:cat:... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz