在Android中识别位图中的Logo

3

我希望能够检测用户相机视图中的标志图像-例如,如果StackOverflow的标志印在纸上并通过相机查看。或者为了更简单的方法,让我们说我想在位图中检测它。我想识别一个特定的标志-可以将其硬编码到应用程序中。

使用开源库(如OpenCV)是否可能实现这一点,还是需要大量的人力工时来实现?

2个回答

2
这是一个明显的不变矩匹配案例(请查看维基百科关于Hu矩的介绍)。我正在开发一个免费开源库,它在Android上使用它进行文本识别:http://sourceforge.net/projects/javaocr/。这里有Android演示,演示完整的往返 - 采样、训练和识别。这是展示它的市场应用程序:https://market.android.com/details?id=de.pribluda.android.ocrcall&feature=search_result#?t=W251bGwsMSwxLDEsImRlLnByaWJsdWRhLmFuZHJvaWQub2NyY2FsbCJd。(通过邮件列表支持库)我想说,仅为一个标志实现识别将花费我约5-6个小时。此外,OpenCV是一个大型的C语言编写的库,将其集成到Android中是一项重要的工作。

1

这是可能的,使用opencv可以实现,但根据您对“大量”的定义,仍然可能需要大量的人力投入。

更严肃的话题:从模板匹配开始。如果这还不够,请考虑使用SIFT特征。此外,搜索这个网站, 可以找到一些非常好的关于这方面的讨论。


OpenCV是C语言编写的,这意味着在Android上使用原生模式会非常麻烦。而且它也太大了——对于10MB大小的应用程序,用户接受度非常有限。 - Konstantin Pribluda
@jilles - 许多许多意味着数十个小时 - 相比于即插即用的方式。由于整个项目可能需要6个小时,而模板匹配/ SIFT / SURF可能需要60个小时,我认为开始处理这个不是一个好主意。 - Axarydax

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接