您的位置:首页 > 移动开发 > Android开发

【Android】Android Studio使用OpenCV的配置方法

2016-08-10 16:26 351 查看
Android Studio中配置及使用OpenCV示例


Android Development with OpenCV


在Android Studio上进行OpenCV 3.1开发

http://docs.opencv.org/2.4/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html#application-development-with-static-initialization

Android Studio使用OpenCV的配置方法

1、下载

进入官网(http://opencv.org/)下载OpenCV4Android并解压。目录结构如下图所示。

 



其中,sdk目录即是我们开发opencv所需要的类库;samples目录中存放着若干opencv应用示例(包括人脸检测等),可为我们进行android下的opencv开发提供参考;doc目录为opencv类库的使用说明及api文档等;而apk目录则存放着对应于各内核版本的OpenCV_2.4.3.2_Manager_2.4应用安装包。此应用用来管理手机设备中的opencv类库,在运行opencv应用之前,必须确保手机中已经安装了OpenCV_2.4.3.2_Manager_2.4_*.apk,否则opencv应用将会因为无法加载opencv类库而无法运行(下篇文章会介绍不提前安装openCV
Manager,即可运行openCV的方法)。

2、将OpenCV引入Android Studio

在Android Studio中选择File->Import Module,找到OpenCV解压的路径,选择sdk/java文件夹。



3、更新build.gradle信息

在Android Studio中的左上角选择Project视图,在oepnCVLibrary2411文件夹里,打开build.gradle(有很多重名的文件,一定找对openCV库文件下的),修改文件中的1)compileSdkVersion 2)buildToolsVersion 3) minSdkVersion 4)targetSdkVersion,将其内容与app文件夹下的build.gradle中信息相一致。点击上方提示的黄色提示框内的Try Again进行更新。



 

4、添加Module Dependency

右键app文件夹,选择Open Module Settings,在app module的Dependencies一栏中,点击右上角的绿色加号,将openCVLibrary2411添加进去,点击确定。





5、复制libs文件夹到项目中

在OpenCV的解压包中,将sdk-->native-->libs文件夹复制,粘贴在Project视图下app-->src-->main目录下,并将其重命名为jniLibs。

 

自此,OpenCV的环境就配置好了。可以将OpenCV-android-sdk-->samples-->tutorial-1-camerapreview中的layout文件,java文件,放入工程中,修改AndroidManifest.xml,添加使用摄像机的权限,即可测试是否成功了。

OpenCVLoader.initAsync初始化


public class MainActivity extends AppCompatActivity {

Mat imageMat;
private ImageView picture;
private static final String TAG = "OCVSample::Activity";

private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status) {
switch (status) {
case LoaderCallbackInterface.SUCCESS:
{
Log.i(TAG, "OpenCV loaded successfully");
imageMat=new Mat();
} break;
default:
{
super.onManagerConnected(status);
} break;
}
}
};

@Override
public void onResume()
{
super.onResume();
if (!OpenCVLoader.initDebug()) {
Log.d("OpenCV", "Internal OpenCV library not found. Using OpenCV Manager for initialization");
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_10, this, mLoaderCallback);
} else {
Log.d("OpenCV", "OpenCV library found inside package. Using it!");
mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: