原生OpenCV面部检测错误

时间:2013-11-14 09:17:26

标签: android opencv face-detection native-code

我是开发Android应用程序本机代码的新手。 实际上我要为Android测试一些原生的OpenCV样本。我正在使用Eclipse。我在编译人脸检测示例时发现了一些错误。 我可以通过this tutorial

来纠正大部分错误

并且

  • 我定义了我的环境变量NDK-root
  • 在Android.mk上激活某些配置

控制台结果是库.so被正确构建,如下所示:

  

[armeabi-v7a]安装:libdetection_based_tracker.so =>   libs / armeabi-v7a / libdetection_based_tracker.so [armeabi-v7a]安装
  :libnative_camera_r2.2.0.so =>   libs / armeabi-v7a / libnative_camera_r2.2.0.so [armeabi-v7a]安装
  :libnative_camera_r2.3.3.so =>   libs / armeabi-v7a / libnative_camera_r2.3.3.so [armeabi-v7a]安装
  :libnative_camera_r3.0.1.so =>   libs / armeabi-v7a / libnative_camera_r3.0.1.so [armeabi-v7a]安装
  :libnative_camera_r4.0.0.so =>   libs / armeabi-v7a / libnative_camera_r4.0.0.so [armeabi-v7a]安装
  :libnative_camera_r4.0.3.so =>   libs / armeabi-v7a / libnative_camera_r4.0.3.so [armeabi-v7a]安装
  :libnative_camera_r4.1.1.so =>   libs / armeabi-v7a / libnative_camera_r4.1.1.so [armeabi-v7a]安装
  :libnative_camera_r4.2.0.so =>   libs / armeabi-v7a / libnative_camera_r4.2.0.so [armeabi-v7a]安装
  :libopencv_java.so =>库/ armeabi-V7A / libopencv_java.so

但是在运行应用程序时,jni文件中出现了一个语法错误:« DetectionBasedTracker_jni.cpp »,在两个地方:

1- result =(jlong​​)new DetectionBasedTracker(stdFileName,DetectorParams);      错误= type 'DetectionBasedTracker'could not be resolved

2-((DetectionBasedTracker *)thiz) - > getObjects(RectFaces); 错误:Invalide arguments 'Candidates are : void getObjects(?&)'

请参阅附件图片

  • error 1
  • error 2

我不明白为什么我会收到这些错误,因为我从未接触过原始代码? 有没有想过纠正这些错误?

2 个答案:

答案 0 :(得分:1)

您的项目中缺少DetectionBasedTracker_jni.h。它包含在一般,我不知道你为什么没有它。它可能会导致您的错误,但它只是一个提示。

timurDroid

  

在Eclipse中,我总是喜欢这个错误,但在关闭cpp文件之后   重启IDE Eclipse,Apllication成功运行。不知道,为什么呢..

我相信您所谈论的异常可能是一个不同的问题,因为在这种情况下,您有很多包含could not be resolved的错误消息,如果您只有那个(少数,不是全部),请更正我。对我来说,如果我打开这些jni文件“一切都无法解决”,因为(我只是猜测)预构建 - 链接日食错误问题。

答案 1 :(得分:-1)

最后!!。我通过重新创建一个新项目解决了这个问题,然后将src文件导入。 现在它工作了!