OpenCV4Android调试人脸识别sample时遇到的问题和解决办法

opencv库同时支持java api,所以如果要完成一些简单的任务的话,用它就可以解决。但是对于一些复杂图像操作的时候,就需要用到c++来开发。在这里先简单说一下如何搭建c++编译环境。

首先在eclipse配置好android开发环境基础上,下载ndk,现在ndk都在10及以上了,无需再用cygwin,下载后直接解压到指定文件夹后,再eclipse中Windows->Perferences->Android->NDK中添加ndk的路径即可。以防万一再添一条,在Perfences->c/c++->Environment中添加NDK_ROOT,value中调价路径。

ndk配置完成后再配置一下CDT,这个非常简单,不赘述。

然后我们就把opencv的sdk导入到eclipse中,会看到opencv的lib,如果有报错的话就到Project->Clean一下。

然后直接导入我们的face-detection工程,因为这些samples已经写好,所以一打开opencv的lib已经在项目中,但要注意的是jni文件下的android.mk文件,下为我的文件内容,做了一下改动。

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

OPENCV_CAMERA_MODULES:=on
OPENCV_INSTALL_MODULES:=on
OPENCV_LIB_TYPE:=SHARED
include ../../sdk/native/jni/OpenCV.mk

LOCAL_SRC_FILES  := DetectionBasedTracker_jni.cpp
LOCAL_C_INCLUDES += $(LOCAL_PATH)
LOCAL_LDLIBS     += -llog -ldl

LOCAL_MODULE     := detection_based_tracker

include $(BUILD_SHARED_LIBRARY)

原本OPENCV开头的三行代码被#注掉了,这样的情况可能会在console中出现

WARNING:jni/Android.mk:detection_based_tracker: non-system libraries in linker flags: -lopencv_java3

或者类似的错误,把#号删除,off改成on即可

在include这一行代码中可以看到引用了sdk库,这里即要注意一开始解压opencv的时候最好不要把sample和sdk分开,否则会找不到,要自己改路径,所以建议放在一个文件夹下

这个情况下编译一般没有问题了,但如果打开了DetectionBasedTracker_jni的cpp或者h文件后,会发现全是错误,而且都改不了,最快的解决办法是删除工程重新导入并且不要打开这两个文件。直接编译就不会报错了


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值