我被要求使用opencv识别图像中的徽标。讲师告诉我,我不需要做logo检测,只需要做logo识别。我在c++中使用opencv。我能知道最简单的方法吗?
Ps:计算机视觉新手。
这在很大程度上取决于你的图像类型。
- 如果你的logo占据了图片的90%,你不需要检测,因为你可能很擅长使用颜色直方图。
- 如果徽标与图像相比较小,您应该"为了把你的比较集中在logo上,而不是在杂乱的背景上。
- 在同一图像上可以有多个徽标?
- 标志总是完全可见?
- logo是刚性的?还是会变形?(比如衬衫或小瓶子上的标志)
假设你要找到一个完整的刚性标志,最简单的方法就是模板匹配。
更准确的方法是匹配描述符。您还可以在这里看到SO的相关主题
其他更强大的方法需要在参考标志上构建关键点星座,并在目标图像上匹配这些星座。
最后,但并非最不重要,在谷歌上玩得开心!
我同意@Miki,你需要做模板匹配,我给你的建议是使用平方差和,只使用刚性变换,你可以在这里找到很多信息。最后一本是我读过的最好的书之一,它很容易理解,并且一步一步地介绍了方程的主要部分。