Bin jetzt gerade dabei zwei Bilder die ich von der Cam aufnehme, zu vergleichen. Ungleiche Pixels werden rot hinterlegt.
Delphi-Quellcode:
for y := 0
to TestImage.Picture.Bitmap.Height - 1
do
begin
P := TestImage.Picture.Bitmap.ScanLine[y];
P2 := OrgImage.Picture.Bitmap.ScanLine[y];
P3 := PrevImage.Picture.Bitmap.ScanLine[y];
for x := 0
to TestImage.Picture.Bitmap.Width - 1
do
begin
if RGB(P^.rgbRed, P^.rgbGreen, P^.rgbBlue)-
RGB(P2^.rgbRed, P2^.rgbGreen, P2^.rgbBlue) > Schwellenwert
then
begin
P3^.rgbRed := $FF;
// = RGB (255, 0, 0) = clRed
P3^.rgbGreen := 0;
P3^.rgbBlue := 0;
end;
Mein Problem ist nun, sobald ich das Rauschen der Kamera reduzieren möchte und damit meinen Schwellenwert erhöhe, bekomme ich die Veränderung des Objekts nicht mehr markiert. Ich möchte ja nur die Veränderung des Objektes herausfinden.
Was mach ich falsch oder wie könnte ich das besser machen?