先说几个坑
OpenCV 3.x版本跟2.x版本有区别,3.x版本是要求最低andriod API21以上。因为如下几个包,只有API21以上才有。
下载的OpenCV
我下载的OpenCV3.1版本
传送门:http://opencv.org/downloads.html
导入library和V7包
然后把如下图中路径的java文件导入到eclipse中,这个文件夹里的就是OpenCV3.1的library。
导入进来之后,项目名称为OpenCV Library - 3.1.0。如果报错,请右键点击该项目,选择properities,找Android选项卡,右侧选择Android API21的,即android 5.x的。如果这里没有,你需要通过Android SDK Manager下载。
如果还报错,请引入V7包。如下图:
手机安装OpenCV Manager
然后进入apk文件夹里,在手机里安装对应的apk。这里边是opencv的so库。
上边两件事都完成以后,就可以新建一个android项目了。
然后建好的项目上点右键,选择properities,找Android选项卡,点击add,把引入的library添加进来。
到现在所有导入的工作已经完成了。可以开始写代码。
新建项目并装载OpenCV的so库函数
首先,很重要,先导入so库。
@Override
public void onResume() {
super.onResume();
if (!OpenCVLoader.initDebug()) {
Log.d(TAG,
"Internal OpenCV library not found. Using OpenCV Manager for initialization");
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_1_0, this,
mLoaderCallback);
} else {
Log.d(TAG, "OpenCV library found inside package. Using it!");
mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
}
}
因为我用的3.1版本,所以用的这句话OpenCVLoader.OPENCV_VERSION_3_1_0,不同版本直接改后面的_3_1_0就好了(应该是这样,点进代码里简单看了看)。
单独写上边这行代码是报错的,我照着samples里这个项目的代码写的:
之后就可以使用opencv的函数了。
OpenCV的java API在上篇博客里有网址,就不再贴过来了。