AndroidStudio集成OpenCV4.1版本

第一步:先到openCV官网现在所需的openCV的版本库;地址:https://opencv.org/,选择相应的Android版本进行下载

第二步,在AndoridStudio中新建一个有C++库的Android项目,并在main下新建jniLibs的目录,把openCV-android-sdk/native/libs目录下的文件copy到新建的jniLibs目录中,在app下的build.gradle中defaultConfig中添加

ndk{

    abiFilters 'armeabi-v7a','arm64-v8a'

}

并在Android标签下添加

sourSets{

            main{

                jni.srcDirs=['src/main/cpp']

                    jniLibs.srcDirs=['src/main/jniLibs']

            }

    }

第三步,把openCV-android-sdk/native/jni/目录下的include目录copy到项目中的libs目录下,然后修改cpp目录下的CMakeLists.txt文件

在里面添加

include_directories(../../../libs/opencv_include)

add_library( lib_opencv SHARED IMPORTED )

set_target_properties(lib_opencv PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/../jniLibs/${ANDROID_ABI}/libopencv_java4.so)

其中注意 PROPERTIES IMPORTED_LOCATION 后面是添加的项目的相对地址

在target_link_libraries标签内添加lib_opencv,具体如下:

target_link_libraries( # Specifies the target library.

                       native-lib

                       lib_opencv//这里的名字是add_library中的lib_opencv保持一致

                       # Links the target library to the log library

                       # included in the NDK.

                       ${log-lib} )

第四步:把openCV-android-simples目录下的face-detection目录中的res中的raw目录copy到项目的res目录下,这个是人脸识别的模型对比文件,然后把src中的DetectionBasedTracker和FdActivity copy 到项目目录中

第五步,在cpp目录中新建一个C++类,命名为DetectionBasedTracker_jni,然后修改CMakeLists.txt文件

add_library( # Sets the name of the library.

             native-lib

             # Sets the library as a shared library.

             SHARED

             # Provides a relative path to your source file(s).

             DetectionBasedTracker_jni.cpp //这里之前是native-lib.cpp修改为当前新建的cpp文件

)

第六步:把openCV-android/simples/face-detection/jni目录下的DectectionBaseTracker_jni.cpp和.h文件中的方法copy到项目中新建的DetectionBasedTracker_jni文件中,如果不想修改里面内容,需在项目中新建org.opencv.samples.facedetect包,把DetectionBasedTracker和FdActivity放到里面,并把FdActivity作为启动页,修改FdActivity中的BaseLoaderCallback监听内的System.loadLibrary("native-lib")

第七步:在AndroidManifest.xml文件中添加:

    

    

    

    

        android:smallScreens="true"

        android:normalScreens="true"

        android:largeScreens="true"

        android:anyDensity="true" />

    

    

    

    

第八步:将openCV-android/sdk/java复制粘贴到项目目录下以第三方库的形式引入,因为是eclipse项目,引用时AndroidStudio会自动生成gradle,把build.gradle中apply plugin:'com.android.library',并删除defaultConfig中的applicationId即可编译通过,

openCV提供的人脸识别默认采用的是后置摄像头,可以在onCreate方法中设置如下代码,即可实现前置摄像头的使用,当为0是即为后置摄像头        

        mOpenCvCameraView.setCameraIndex(1);

        mOpenCvCameraView.enableView();

集成完成后,如需其他功能可根据openCV提供的api文档进行添加使用。

你可能感兴趣的:(AndroidStudio集成OpenCV4.1版本)