image - Delphi 比较 2 个相似图像

标签 image delphi compare computer-vision

是否有办法在 Delphi 中比较 2 个相似的图像(不相同)。

以下是一些示例:

enter image description here & enter image description here

很明显,我们不能逐像素比较, 所以我的想法是对每个图像的像素值求和,然后比较它们:

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 个图像执行此过程,它总是会给出错误的结果。

还有什么办法吗?例如更改颜色或对比度等。

最佳答案

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

关于image - Delphi 比较 2 个相似图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18454498/

相关文章:

c - 如何在 C 中打印具有特定字符的单词?

Java:如何使用字符串比较用户和真实答案并确保其语法正确?

image - 将带有图像的 Canvas 导出为图像(如 PNG 或 jpg)

c++ - 访问冲突写入位置 0x00000000

delphi - 如何绘制文本居中的纯色位图?

delphi - delphi中的文件屏蔽

sql-server - 快速发现两个 SQL Server 数据库之间的差异

javascript - 使用javascript在图像上绘制

image - 将 (SVG-) 图像添加到 R 中的现有图形

delphi - 如何设置控制台字体?