我有一堆“简单”的图像,我想比较它们是否相似。我使用模板匹配 ( ) 将它们相互比较cv::matchTemplate
,结果非常好。
现在我想微调我的程序,但我遇到了一个问题。例如,我有两张看起来非常相似的图像。他们唯一的区别是另一个有更粗的线和项目的数字前面不同。当两幅图像都很小时,线条粗细的一个像素差异会在进行模板匹配时产生很大的结果差异。当线条粗细相同并且唯一的区别是前面的数字时,我会得到类似于匹配成功时0.98
的模板匹配结果。CV_TM_CCORR_NORMED
当线条粗细不同时,匹配结果类似于 0.95。
我不能将阈值降低到 0.98 以下,因为其他一些类似的图像具有相同的线条粗细。
以下是示例图像:
那么我有什么选择呢?
我努力了:
- 扩大原件和模板
- 侵蚀也两者
- 形态学前两者
- 计算关键点并进行比较
- 寻找角落
但还没有大的成功。这些图像是否太简单以至于难以检测“好的特征”?
任何帮助都非常受欢迎。
谢谢!
编辑:
这是其他一些示例图像。我的程序认为相似的内容放在同一个 zip 文件夹中。 压缩