首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓计算机视觉JavaCV OpenCV FastCV比较

安卓计算机视觉JavaCV OpenCV FastCV比较
EN

Stack Overflow用户
提问于 2012-05-20 11:43:46
回答 6查看 10.4K关注 0票数 12

我正在做一个学校项目,其中一部分应该是关于Android的计算机视觉库的现状。我怀着极大的热情去了它,因为计算机视觉似乎是一个迷人的主题,但我已经寻找了超过一个星期,但我没有找到多少。我希望能够提供有关图书馆本身和它们之间的比较的信息。

我会分享到目前为止我所发现的。

OpenCV

  • 似乎是最先进的也是最受欢迎的。
  • 提供最大数量的功能
  • 它有向后兼容性的问题。
  • 是快速的(至少我听说了,但我没有任何信息)
  • 确实有大量关于它的书籍(至少对于C++版本是如此)。

JavaCV

  • 是少数其他库(包括opencv )的包装器。

FastCv

  • 高通公司的新产品。

Wikitude

  • 这更多的是为了增强现实,但其核心仍然是计算机视觉。

正如你所看到的,我有一些关于它的信息,并且为每个图书馆做我自己的测试远远超出了我目前的计算机视觉技能。

你好,彼得。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-05-29 19:29:44

基本上有两种选择: OpenCV和FastCV

OpenCV是一个比FastCV更成熟的库,具有更多的功能。对于许多计算机视觉任务,您只能在FastCV中找到最基本的功能,而可以在OpenCV中找到几乎所有流行的备选方案。例如,检查可用的特征检测器。OpenCV有哈里斯、冲浪、SIFT、FAST等。另一方面,FastCV只有哈里斯和FAST。OpenCV包含针对不同HW的硬件优化,包括桌面计算机和移动计算设备。在桌面中使用OpenCV的能力为您提供了一个更灵活的开发选项,因为在开始移动开发之前,您可以在快速桌面计算机上调整和测试代码。另外,OpenCV被认为是Khronos计算机视觉小组提案的一部分。因此,如果获得批准,OpenCV可以成为计算机视觉的标准API。据我所见,FastCV为Snapdragon提供了更好的优化。这可能会在短期内的决策中发挥重要作用,但我相信OpenCV会很快缩小差距,如果有的话。

如果您选择OpenCV路径,那么有两个子路径: OpenCV与Android和JavaCV与Android。JavaCV是基于JavaCpp的OpenCV包装器。JavaCV主要封装了C++,尽管OpenCV也提供了一个面向对象的C++ API。例如,C++ API自动处理未使用内存的释放。但是,C(因此是JavaCV)要求您手动处理未使用图像的发布。另外,当您在JavaCV中遇到问题时,很难解决这个问题,因为有太多的方向需要检查。当您直接使用OpenCV时,问题更容易找到。然而,对于Android系统,NDK带来的额外困难不应该被遗忘。

如果可用的OpenCV功能对于特定的应用程序是必要的,并且不需要自定义像素级的处理代码,那么JavaCV就是最好的选择。但是,如果需要大量的自定义图像处理代码,Java代码将使您慢下来,而且您需要切换到NDK。在后一种情况下,OpenCV是可供选择的。

票数 26
EN

Stack Overflow用户

发布于 2012-05-27 21:53:07

我会使用OpenCV,因为它是目前最好的计算机视觉库。您将使用C++编程您的函数,然后使用JNI库编译Android应用程序。您有关于如何在正式文件上这样做的信息。

我使用过这种配置,OpenCV在安卓系统中的性能非常好。如果你用定点算法做一些函数,你会注意到好处。祝好运

票数 7
EN

Stack Overflow用户

发布于 2012-05-25 08:09:55

对于基于android的项目来说,从JavaCV开始是很容易的。它包含几乎所有在OpenCV上可用的函数。

但是JavaCV上没有丰富的文档,但是OpenCV提供了。因此,您可以从OpenCV文档中找到相关的方法,并使用JavaCV中的方法(相同的方法名称)。

这里有一个完整的文档。这是关于如何在eclipse环境下设置JavaCV的讨论。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10673099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档