Android Native源码中使用 openCV

来源:互联网 发布:卸载windows更新补丁 编辑:程序博客网 时间:2024/05/16 17:31

步骤:

  1. 下载sdk :我下载的是 OpenCV-3.1.0-android-sdk  

           http://opencv.org/downloads.html 中选择android版本即可,下载后解压

     2.   把解压了 OpenCV-3.1.0-android-sdk中OpenCV_android_sdk\sdk\native\libs下根据CPU类型复制32位和64位的libopencv_java3.so到android源码的external目录下新建的openCV_libs\arm32和openCV_libs\arm64下

         (armeabi就是针对普通的或旧的arm cpu,armeabi-v7a是针对有浮点运算或高级扩展功能的arm  cpu。arm64-v8a为 64位ARM设备,我这边复制的是 armeabi 和arm64-v8a目录下的库)

     3.   把OpenCV_android_sdk\sdk\native\jni\include (头文件)目录也复制到openCV_libs下

     4.    把libopencv_java3.so编译到系统lib下 ,即写Android.mk文件

            别忘了编译成功后 push到手机系统的 /system/lib/ 和system/lib64/下

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := libopencv_java3LOCAL_SRC_FILES_32 := openCVlibs/arm32/libopencv_java3.soLOCAL_MULTILIB := 32LOCAL_MODULE_CLASS := SHARED_LIBRARIESLOCAL_MODULE_SUFFIX := .soinclude $(BUILD_PREBUILT)include $(CLEAR_VARS)LOCAL_MODULE := libopencv_java3LOCAL_SRC_FILES_64 := openCVlibs/arm64/libopencv_java3.soLOCAL_MULTILIB := 64LOCAL_MODULE_CLASS := SHARED_LIBRARIESLOCAL_MODULE_SUFFIX := .soinclude $(BUILD_PREBUILT)

     5.    在使用openCV库地方地方引入库和头文件即可,使用的openCV相关xxx.cpp文件的

            目录的 Android,mk(编译xxx.cpp)中查看是否有这两个变量:

            LOCAL_SHARED_LIBRARIES

            LOCAL_C_INCLUDES 

            如果已经存在就在LOCAL_SHARED_LIBRARIES 后面添加 libopencv_java3

            存在 LOCAL_C_INCLUDES 就在后面追加 $(TOP)\external\openCV_libs\include

           不存在的话:添加以下两句

           LOCAL_SHARED_LIBRARIES  := \

                                  libopencv_java3

           LOCAL_C_INCLUDES  :=   \

                                  $(TOP)\external\openCV_libs\include

 

      6 .    此时配置都已经可以了 在使用openCV API的xxx.cpp里面加入 
              #include "opencv2/opencv.hpp"

               就可以是使用openCV中的API了


同步于 https://my.oschina.net/ginter/blog/744296

CKT_wiki

1 0
原创粉丝点击