无论如何在Delphi中比较2个相似的图像(不一样)。
这里有些例子:
&
很明显,我们不能逐像素比较,所以我的想法是对每个图像的像素值求和,然后比较它们:
function CalcPix( img : TImage) : longint;
var
s : longint;
i, j : integer;
begin
s := 0;
for i := 0 to img.Height do
begin
for j := 0 to img.Width do
begin
if img.Canvas.Pixels[i,j] <> clWhite then
s := s + img.Canvas.Pixels[i, j];
end;
end;
Result := S;
end;
结果是:
1)14836072057
2)16750850318
如您所见,它们并没有那么接近,如果我一次使用 4-5 张图像执行此过程,它总是会给我错误的结果。
还有其他方法吗?比如改变颜色或对比度等。