【问题标题】:Matching two images in OpenCv在 OpenCv 中匹配两个图像
【发布时间】:2025-12-21 21:55:16
【问题描述】:

我在匹配两张相似的图片时遇到了一些麻烦。即我已经从过滤器获得了一个二进制图像 tat 显示为“pic1”,我需要将此图像与文件夹中存储的图像进行比较,如果与输入图像匹配,则代码/prgm 应返回 true 并且如果没有匹配,它应该返回 false。问题是我在 OpnenCV 中找不到特定函数来进行这种特定类型的匹配。我在 openCV 中发现了一些技术,它们是 Surf、模板匹配。但是我无法找到如何实现这些功能来解决我的问题,以及即使图像与数据库具有不同的方向,也无法确定哪个更准确地找到匹配项。所以请有人帮助解决这个问题。 谢谢你。

图1:

【问题讨论】:

  • 看到这个答案:*.com/a/8221251/547242。有一个类似的任务 - 从二进制场景中检测太阳
  • 嘿,谢谢你的链接,我会努力解决的。 :)

标签: opencv


【解决方案1】:

如果所有图像都是二进制的,具有相同的精确比例,并且位于相同的位置。使用 XOR 函数并计算不匹配。您还可以使用归一化互相关、SSD 和其他错误指标等。

【讨论】:

    【解决方案2】:

    如果您的对象都具有相同的大小,我建议您使用模板匹配,这是一个示例:http://docs.opencv.org/doc/tutorials/imgproc/histograms/template_matching/template_matching.html

    但如果您有一些变形(比例、大小、旋转、倾斜、透视退化......),您可以使用描述符匹配(FASTSURFSIFT、.. 等)。

    【讨论】: