2014-10-10 140 views
0

我一直在想如果可以在android opencv中使用opencv的所有功能。我打算在Android Open CV中完成我的PG项目。因为我熟悉android而不是opencv。是否有可能实现opencv(Windows)中使用Android opencv的所有功能?opencv和Android之间的区别opencv

回答

4

不幸的是,Java API不能像C++ API那样提供对所有函数的访问。首先,我将讨论所需的所有工具包,然后如何在Android中使用本机(C/C++)。

工具包所需

开发使用OpenCV库,我们需要以下工具(所有这些都是要么开源或免费的软件,或两者兼有)的Android应用程序 -

  1. 使用adt Bundle(您可以选择任何其他IDE,比如Android Studio)
  2. OpenCV4Android(虽然可以从源代码编译,但建议新手用户下载二进制文件。)
  3. CygWin的(仅适用于Windows,不需要在Linux或Mac)
  4. 的Java JDK(JRE是不够的)
  5. Android原生开发工具包(NDK)(运行本机C所需/ C++代码)

您需要在您的操作系统上设置环境变量以使工具正确配置。

另外,nVidia还提供了一套开发工具--TADP。 TADP相对于逐件方法的优势在于,您无需关注设置开发环境的常见任务。默认安装会下载许多不需要的多余软件包(下载大小可能大于2GB,并且在慢速互联网连接上,它可能会变成长时间活动),而是在下载时手动选择软件包(一个对话框将出现,要求您选择完成,定制或手动)。

在Android中使用C/C++代码

你可以通过

访问在Android原生的C/C++的功能
  1. Here是官方的OpenCV教程配置 。
  2. 另外,请查看Android4OpenCV文件夹的Samples文件夹中的Mixed Processing Sample。此示例显示如何将图像及其灰度等效于本机功能,并使用FAST功能检测功能检测图像上的功能。

有用的书籍和教程

没有太多的研究材料的权利,但我想这两个源是最好的 -

  1. 与OpenCV的Android的应用程序编程通过年底Packt 出版。

  2. OpenCV4Android文件夹中的示例程序。

+0

我在问有关区别的人... opencv和opencv for android .. – 2014-10-12 06:25:08

+0

没有区别。 OpenCV即编写C/C++ API是为了在桌面环境中执行Compter Vision,而OpenCV4Android是用于移动开发的官方Java API。使用C/C++ API(OpenCV)编写的代码比用Java API(OpenCV4Android)编写的代码快,但会有额外的JNI呼叫负载。就API的大小而言,OpenCV4Android并不涵盖OpenCV的所有功能。 – bikz05 2014-10-12 12:54:42

+0

好吧..未来将发布android open cv可以做openvc的所有功能吗?感谢您的回复:) – 2014-10-13 15:19:55

1

是的,它绝对可以在Android上使用OpneCV中的所有功能。但是你必须注意到OpenCV4Android包含2个部分:Java部分和本地部分。

事实上,Java部分提供了OpenCV库的大部分功能。如果你想获得更多的功能和更快的速度,那么只需要进行本地开发。 OpenCV SDK包中的.so库提供了所有本机功能。事实上,如果您熟悉本地开发,您甚至可以直接使用OpenCV C++库,就像人们在Android上使用FFMPEG一样。