Android 集成 OpenCV native library

  1. Android集成OpenCV native library:
    1. 目前来看,OpenCV提供的SDK中已经附带了编译好的.a和.so库,使用者可以根据自己的需要选择动态或者静态库链接。
    2. OpenCV SDK下载地址: http://opencv.org/releases.html
    3. 选择对应版本的Android pack下载。
    4. 解压开会发现有一个sdk目录(这里以3.0.0版本为例)。
    5. sdk/native/libs包含了OpenCV已经编译好的.a静态库和.so动态库。静态库的数量很多,估计是编译的时候直接分模块编译了,个人估计没准可以按功能选择性的引入静态库。不过动态库就只有一个。
    6. sdk/native/libs中包含了OpenCV所依赖的其他第三方库,这里就只有静态库,因为这种应用场景下只能使用静态库。
    7. sdk/native/jni包含了include头文件和各种cmake/mk来进行集成编译。
    8. 一般来说,要将库集成到自己的App中,是需要将库文件和头文件的路径加入到Android.mk中的,并且还需要修改其中的一些编译配置。不过OpenCV在这里就很方便,其sdk/native/jni/中的OpenCV.mk已经替你将上面这些步骤全部包含了。你要做的主要就是将OpenCV.mk include到你的Android.mk中。
  2. OpenCV.mk使用的一些要点:
    1. OpenCV.mk会修改LOCAL_XXX变量使得你在include之后基本就可以直接使用,因此,在include OpenCV.mk 后,在使用其提供的信息进行编译前,不要调用include $(CLEAR_VARS),否则前面OpenCV.mk配置的LOCAL_XXX就被清除了,编译会失败
    2. OpenCV.mk集成静态库:
      1. 需要在include前这样设定变量: OPENCV_LIB_TYPE := STATIC OPENCV_LIB_TYPE是OpenCV.mk内部使用的变量
    3. OpenCV.mk集成动态库
      1. 需要在include前这样设定变量:
        1. OPENCV_LIB_TYPE := SHARED
        2. OPENCV_INSTALL_MODULES:=on (这一步会将so库加入到$(PREBUILT_SHARED_LIBRARY)中,后面才能进行link)
        3. LOCAL_SHARED_LIBRARIES中增加opencv_java3 (为什么叫这个名字,可以参阅OpenCV.mk, 但貌似3.2不需要这一步了)
    4. OpenCV.mk会替你把OpenCV的头文件都添加到LOCAL_C_INCLUDES中,因此你不需要在自己的Android.mk中在配置。
    5. 建议通读OpenCV.mk,本身很简单。
发布了426 篇原创文章 · 获赞 48 · 访问量 64万+
展开阅读全文

OpenCV for Android,jni,库调用的问题

04-18

我现在用android studio开发工程,底层算法依旧在使用c++,用的是opencv的库,在完成opencv库加载之后。我build和run都没有问题,写的与opencv有关的函数都没有报错。 但是在跑起来以后,opencv的一些基础函数崩溃,代码在debug模式下已经验证没有越界等bug。貌似是opencv的函数调用不了。附上文件截图,请有经验的帮我看看,是哪个地方出了问题。 目前仅仅只有opencvjava4是生效的,其他.a的库貌似都没有生效,注释不注释都不影响build和run,且报错的位置都一样。如下图,仅仅是一个基础的函数mat.clone()报错。感觉链接的.a有问题,并没有生效 ![图片说明](https://img-ask.csdn.net/upload/201904/18/1555559630_96704.png) ![图片说明](https://img-ask.csdn.net/upload/201904/18/1555559304_443417.png) ![图片说明](https://img-ask.csdn.net/upload/201904/18/1555559316_913435.png) ``` target_link_libraries(tracking # android lib ${log-lib} ${android-lib} # opencv opencv_java4 # opencv_core # opencv_highgui # opencv_imgproc # opencv_dnn # opencv_features2d # opencv_flann # opencv_imgcodecs # opencv_ml # opencv_objdetect # opencv_photo # opencv_stitching # opencv_video # opencv_videoio # opencv_calib3d # quirc # tbb # IlmImf # cpufeatures # libjasper # libjpeg-turbo # libpng # libprotobuf # libtiff # libwebp # tegra_hal ) ``` 请教大佬,这个问题应该怎么解决? 问答

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览