opencv(一)调试opencv中的facedetection

这两天,准备玩一下那个opencv,在安卓平台下。
整个环境是AndroidStudio,opencv,idk,jni,face detection。
主要记录一下其中解决的几个问题。
代码就是opencv4android中的OpenCV-android-sdk/samples/face-detection

1、用AS导入此文件夹,AS会建好一个工程
2、其中有一步报错face-detection/openCVSamplefacedetection/src/main/jni
这里写图片描述
这个错误怎么解决呢?
我的解决办法是:
1、在face-detection/openCVSamplefacedetection目录下的build.gradle中添加下面几行

sourceSets {
    main() {
        jni.srcDirs = []
    }
}

编译运行,会出现如下错误:
java.lang.UnsatisfiedLinkError: Couldn’t load detection_based_tracker from loader dalvik.system.PathClassLoader[DexPathList[[zip file “/data/app/org.opencv.samples.facedetect-1.apk”],nativeLibraryDirectories=[/data/app-lib/org.opencv.samples.facedetect-1, /vendor/lib, /system/lib]]]: findLibrary returned null
2、编译so
进入face-detection/openCVSamplefacedetection/src/main/jni目录
执行idk-build命令,会弹出一下错误
/Users/xhanfei/AndroidStudioProjects/face-detection/openCVSamplefacedetection/src/main/jni/Android.mk:15: ../../sdk/native/jni/OpenCV.mk: No such file or directory
make: * No rule to make target `../../sdk/native/jni/OpenCV.mk’. Stop.

修改目录下Android.mk中15行,修改为自己opencv SDK的路径我的是include /Users/xhanfei/Library/OpenCV-android-sdk/sdk/native/jni/OpenCV.mk
在执行ndk-build命令应该可以成功(如何把ndk命令添加到path中,请自行google)
这里写图片描述

此时在build.grade文件中的sourceSets下在添加一行
jniLibs.srcDirs = [‘src/main/libs’]

    sourceSets {
        main() {
            jni.srcDirs = []
            jniLibs.srcDirs = ['src/main/libs']
        }
    }

然后在AS中点击sync,然后在运行,应该就可以正常运行了,请看下图。
这里写图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值