如何在Android中使用OpenCV

2025-04-15 11:47:58
推荐回答(2个)
回答1:

  转载 作者RaySaint
  如何在Android程序中使用OpenCV

  有两种方式(重点讲后面一种):

  1.使用OpenCV Java API。

  OpenCV安装路径"F:\OpenCV-2.3.1-android-bin"下有两个文件夹,如下图

  将文件夹"OpenCV-2.3.1"拷贝到你的Eclipse工作空间所在的目录,也就是在你的项目的上一级目录中,然后导入到工作空间中,在Package
  Explorer中选择你的项目,单机右键在弹出菜单中选择Properties,然后在弹出的Properties窗口中左侧选择Android,然后点击右下方的Add按钮,选择OpenCV-2.3.1并点击OK,如下图:

  此时,展开你的项目树,你可以看到新加了一个OpenCV-2.3.1_src目录,那么就是正确添加了OpenCV Java
  API,否则就是你放置OpenCV-2.3.1的目录路径不正确。

  然后就可以在你的Java源文件中导入OpenCV的API包,并且使用OpenCV API了,OpenCV API的包的形式如下:

  Org.opencv.(OpenCV模块名).(OpenCV类名)

  例如:

  Org.opencv.core.Mat

  2.利用JNI编写C++ OpenCV代码,通过Android NDK创建动态库(.so)

  新建一个工作空间,例如"TestOpenCV",在Window->Preferences中设置好Android SDK的路径,如下图所示。

  然后新建一个Android项目,Build
  Target选择Android2.2,命名为"HaveImgFun",活动名改为HaveImgFun,Package
  name中填写com.testopencv.haveimgfun,最后点击finish。

  如同使用OpenCV Java
  API那样,将OpenCV-2.3.1文件夹拷贝到与工作空间同一级目录中;另外,将"F:\OpenCV-2.3.1-android-bin\samples"下的includeOpenCV.mk文件拷贝到和项目HaveImgFun同一级目录中,如下图所示:

  (上面这个各个文件夹和文件的放置很重要,因为OpenCV-2.3.1下的OpenCV.mk中有很多相对路径的指定,如果不是这样放置,在NDK生成动态库时可能会报文件或文件夹无法找到的错误)

  选择Package Explorer中你的项目,右键选择new->folder,新建一个名为jni的文件夹,用来存放你的c/c++代码。

  然后把res->layout下的main.xml的内容改为下面所示:
  

回答2:

在Android中使用OpenCV方法为:
a、OpenCV安装路径"F:\OpenCV-2.3.1-android-bin"下有两个文件夹。将文件夹"OpenCV-2.3.1"拷贝到Eclipse工作空间所在的目录,也就是在你的项目的上一级目录中,然后导入到工作空间中,在Package Explorer中选择项目,单机右键在弹出菜单中选择Properties,然后在弹出的Properties窗口中左侧选择Android,然后点击右下方的Add按钮,选择OpenCV-2.3.1并点击OK,。
b、此时,展开项目树,可以看到新加了一个OpenCV-2.3.1_src目录,如下图,那么就是正确添加了OpenCV Java API,否则就是放置OpenCV-2.3.1的目录路径不正确。
c、然后就可以在Java源文件中导入OpenCV的API包,并且使用OpenCV API了,OpenCV API的包的形式如下:
Org.opencv.(OpenCV模块名).(OpenCV类名)
例如:
Org.opencv.core.Mat