OpenCV标志识别

OpenCV logo recognition

我被要求使用 opencv 识别图像中的徽标。讲师告诉我,我不必做标志检测,而只做标志识别。我在 C++ 中使用 opencv。我能知道最简单的方法吗??

Ps: 计算机视觉新手

这在很大程度上取决于您的图片类型。

  • 如果您的徽标占据了图像的 90%,则不需要检测,因为您可能擅长颜色直方图。
  • 如果徽标比图像小,您应该 "find" 徽标,以便将您的比较重点放在徽标上而不是背景混乱上。
  • 同一张图片上可以有多个徽标吗?
  • 徽标始终完全可见?
  • 标志死板?还是可以变形? (例如衬衫或小瓶子上的徽标)

假设您要查找一个完整的刚性徽标,最简单的尝试是 template matching

更准确的方法是match descriptors。 您还可以在 SO here

上查看相关主题

其他更强大的方法需要在您的参考徽标上构建关键点星座,并在目标图像上匹配这些星座。有关示例,请参阅 here and here

最后但并非最不重要的一点,祝您玩得开心 Google!

同意@Miki,你需要做模板匹配,我给你的建议是使用差平方和,只使用刚性变换,你可以找到很多资料here。最后一本是我翻过的最好的书之一,简单易懂,一步一步地掌握了方程式的主要部分。