德尔福比较2个相似的图片

Oue*_*ine 2 delphi compare image computer-vision

无论如何比较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;
Run Code Online (Sandbox Code Playgroud)

结果是:

1)14836072057

2)16750850318

正如你所看到的那样,它们并不是那么接近,如果我一次用4-5个图像进行这个过程,它总会给我错误的结果.

还有其他方法吗?喜欢改变颜色或对比度等

Har*_*riv 5

以下是关于您所拥有的选项的好文章:https://stackoverflow.com/a/844113/7735这需要一些背景知识,并且最好的解决方案很难从头开始实现,因此使用某种类型的库将是最简单的.这是Delphi的OpenCV包装器:https://github.com/Laex/Delphi-OpenCV