美文网首页AndroidandroidAndroid开发
在Android Studio中安装OpenCV3.4.1笔记

在Android Studio中安装OpenCV3.4.1笔记

作者: 晚晴风_ | 来源:发表于2018-04-11 21:49 被阅读463次
    00.jpg

    最近在学习视觉算法的时候,想着如果利用手机的摄像头做一些实时的图像处理也是很方便的,生活中也有些场景可以做一些好玩的应用,于是就开始在安卓上搭建OpenCV环境。参考了一些网上的帖子,有些比较久远了,像Android Studio的版本,目前已经更新到3.0.1了,各方面都完善了很多,而OpenCV也发展到3.4.1版了,所以一些比较有年代的帖子介绍的方法不一定适用于今天,我研究了好些个帖子,最终顺利搭建好了,所以趁着记忆还热乎把这个过程记录一下,以备以后再要装的时候参考。

    下载

    1.首先,安装Android Studio,我安装的是目前最新的3.0.1版本,完全参考了一篇网上的教程,一步步照着做下来,没有问题。

    2.下载OpenCV sdk for Android,我是在官网下的最新版,解压(我的解压路径是D:\AndroidSDK\OpenCV-android-sdk)

    3.新建项目,File-New-New Project,取个名字

    01.jpg

    点下一步,


    02.jpg

    Minimum SDK 选择 API 19:Android 4.4 (KitKat),再点“Next”

    选择Empty Activity,直到“Finish”

    导入OpenCV

    Android Studio菜单-->File-->New-->Import Module

    选择D:\AndroidSDK\OpenCV-android-sdk\sdk\java

    Module name: Android studio会自动填充这项为openCVLibrary341 ,不用自己改,如下图:

    03.jpg

    点“Next”,下一步,默认的三个全勾上

    04.jpg

    1)File-->Project Structure

    2)左边Modules栏下选择app

    3)在右边上面一栏中选择Dependencies

    4)点击右边栏中的“+”,选择第三个Module Dependency

    05.jpg
    06.jpg

    5)点击ok退出,然后再点击ok退出

    1)将视图由Android切换到Project,如图所示

    2)点击app,打开app根目录下的build.gradle文件,注意
    compileSdkVersion,
    buildToolsVersion,
    minSdkVersion,
    targetSdkVersion
    后面的数值


    07.jpg

    3)点击openCVLibrary341,打开根目录下的build.gradle文件,把文件中

    compileSdkVersion,
    buildToolsVersion,
    minSdkVersion,
    targetSdkVersion,
    后的数值改成和上一步app中一样的

    08.jpg

    1)把OpenCV sdk for Android文件下D:\AndroidSDK\OpenCV-android-sdk\sdk\native下的libs文件夹拷贝到自己的安卓项目下,我的是TestOpencvAd\app\src\main下面,并且将libs改名为jniLibs.

    2)此时前期准备工作就完成了,可以开始自己写代码了。

    测试

    可以用opencv中的sample程序测试下

    1. 将OpenCV-android-sdk\samples\image-manipulations\src\org\opencv\samples\imagemanipulations中的ImageManipulationsActivity.java文件,拷贝到自己的安卓项目TestOpencvAd\app\src\main\java\com\xiaoma\opencvtest下,打开原来的MainActivity.java文件,看第一行的包名,我的是

       package scr.testopencvad;
      

      把这一行拷贝,用来替换掉ImageManipulationsActivity.java文件中的package一行。然后可以删掉MainActivity.java文件

    2. 将OpenCV-android-sdk\samples\image-manipulations\res中的三个文件(如图所示),拷贝到你的安卓项目TestOpencvAd\app\src\main\res下(与目录下的同名的三个文件合并)

    3. 将OpenCV-android-sdk\samples\image-manipulations中的AndroidManifest.xml文件,拷贝到你的安卓项目TestOpencvAd\app\src\main下替换

    4. 打开AndroidManifest.xml,

    • 改包名,找到第三行的package,改为package="scr.testopencvad"

    • 找到”android:theme”行,修改为

    android:theme="@android:style/Theme.Holo.Light.DarkActionBar"
    
    11.jpg
    • 将uses-sdk android:minSdkVersion的值改成之前记下的版本号的值,

    因为原版的是fullscreen状态,导致打开后看不见菜单,这么改了以后就没问题了。

    10.jpg
    1. build apk

    2. 假如手机运行时弹出

    “It seems that you device does not support camera(or it is locked).Application will be closed.”

    这时候打开手机的应用权限管理,允许这个程序的访问相机就好了。

    12.jpg

    接下来就可以在这个基础上继续改进算法,研究更好玩的应用了。

    参考

    https://jingyan.baidu.com/article/60ccbceb53533364cab197db.html

    https://blog.csdn.net/u013125680/article/details/48736047

    相关文章

      网友评论

      • prime10:楼主楼主,我试了你的步骤还有网上另一种手动导入编写gradle的方法,都报了同一个错:Error:Cannot read packageName from F:\Course\libraries\opencv\src\main\AndroidManifest.xml。我在网页上打开这个manifest,代码如下:<?xml version="1.0" encoding="UTF-8"?>
        <manifest package="com.example.a510.course" xmlns:android="http://schemas.android.com/apk/res/android";>
        <application android:theme="@style/AppTheme" android:supportsRtl="true" android:roundIcon="@mipmap/ic_launcher_round" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:allowBackup="true">
        <activity android:name=".MainActivity">
        <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
        </activity>
        </application>
        </manifest>
        搞了一晚上,有点方了已经,上网各种查没找到解决方法,跪求楼主解答
        prime10:@晚晴风_ 嗯嗯好,谢谢楼主,我前两天试的时候本身创建的项目就少了各Manifest,然后脚本改错地方了,再试一遍发现可以了:joy: 多谢多谢:pray:
        晚晴风_:@prime10检查下packageName 是否正确,比如"com.example.a510.course" ,各个引用的包名有没有改成自己的
      • 姜小白哦:楼主啊,我按照你的方法引入之后报了一个错误 java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader 和
        couldn't find "libopencv_java341.so"
        晚晴风_:@个人网站搭建与建设 才看到这条消息,在最新的一篇文章里面有提到这个问题和一些错误的总结:)

      本文标题:在Android Studio中安装OpenCV3.4.1笔记

      本文链接:https://www.haomeiwen.com/subject/jbxtkftx.html