Home » Tipps & Tricks » Grafik » Grafikbearbeitung » Zwei Images vergleichen
Zwei Images vergleichen
Mit dieser Prozedur können Images pixelweise miteinander verglichen werden. Bei Images, „die mal analog waren“, empfiehlt es sich möglicherweise aufgrund des Rauschanteils, mit einem Schwellenwert größer als 0 zu arbeiten. Es wird vorausgesetzt, dass die Bitmaps von image1 und image2 die gleichen Abmessungen haben!
procedure CompareImages(Image1, Image2: TImage); var x, y: integer; anzahl_unterschiede: LongInt; zeile1, zeile2: PByteArray; prozent: single; const schwellenwert=5; // Erst wenn die Unterschiede den Schwellenwert überschreiten, // wird die Abweichung registriert. begin anzahl_unterschiede:=0; for y:=0 to image1.Picture.Bitmap.height-1 do begin zeile1:=image1.Picture.Bitmap.scanline[y]; zeile2:=image2.Picture.Bitmap.scanline[y]; for x:=0 to image1.Picture.Bitmap.width-1 do if abs(zeile1[x]-zeile2[x])>schwellenwert then inc(anzahl_unterschiede); if image1.Picture.Bitmap.height*image1.Picture.Bitmap.width>0 then prozent:=100*(anzahl_unterschiede/(image1.Picture.Bitmap.height* image1.Picture.Bitmap.width)) else prozent:=0; label1.caption:='Unterschiede:'+FloatToStr(prozent)+'%'; end; end;