我正在使用OpenCV执行系统,以通过设备的摄像头检测物体。 使用CascadeClassifier进行检测

问题是,当我运行代码时,出现以下错误:

Error:(12) undefined reference to `cv::CascadeClassifier::CascadeClassifier()'
Error:(27) undefined reference to `cv::CascadeClassifier::load(cv::String const&)'
Error:(61) undefined reference to `cv::cvtColor(cv::_InputArray const&, cv::_OutputArray const&, int, int)'
Error:(94) undefined reference to `cv::equalizeHist(cv::_InputArray const&, cv::_OutputArray const&)'
Error:(98) undefined reference to `cv::CascadeClassifier::detectMultiScale(cv::_InputArray const&, std::vector<cv::Rect_<int>, std::allocator<cv::Rect_<int> > >&, double, int, int, cv::Size_<int>, cv::Size_<int>)'
Error:(128) undefined reference to `cv::rectangle(cv::Mat&, cv::Rect_<int>, cv::Scalar_<double> const&, int, int, int)'

我的build.gradle:

android {
...
defaultConfig {
    ...
    externalNativeBuild {
        cmake {
            cppFlags ""
        }
    }
}
buildTypes {
    ...
}
sourceSets {
    main {
        jni.srcDirs = []
        jniLibs.srcDirs = ['src/main/jniLibs']
    }
}
externalNativeBuild {
    cmake {
        path "CMakeLists.txt"
    }
} ...

这是我的CMakeList.txt文件cmake_minimum_required(版本3.4.1)

set(EXECUTABLE_OUTPUT_PATH      "${CMAKE_CURRENT_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}")

add_library( # Sets the name of the library.
             native-lib

             # Sets the library as a shared library.
             SHARED

             # Provides a relative path to your source file(s).
             src/main/cpp/native-lib.cpp )

add_library( # Sets the name of the library.
             Detector

             # Sets the library as a shared library.
             SHARED

             # Provides a relative path to your source file(s).
             src/main/cpp/Detector.cpp )

include_directories(/Users/###/Libs/OpenCV-SDK/sdk/native/jni/include)

add_library( lib-opencv SHARED IMPORTED )

set_target_properties(lib-opencv PROPERTIES IMPORTED_LOCATION  ${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libopencv_java3.so)

find_library( # Sets the name of the path variable.
              log-lib

              # Specifies the name of the NDK library that
              # you want CMake to locate.
              log )
target_link_libraries( # Specifies the target library.
                     native-lib
                     # prebuilt library opencv java.
                     lib-opencv
                     # Links the target library to the log library
                     # included in the NDK.
                     ${log-lib} )

有人有任何线索吗? 谢谢

  ask by JBeccaceci translate from so

本文未有回复,本站智能推荐:

2回复

OpenCV与Android NDK未定义参考

我正在尝试在android上使用opencv(仅限ndk)。 我编译了armeabi的git存储库的最新源代码。 (基于: Building_OpenCV4Android_from_trunk ) 但是我得到了这个错误(使用ndk-build): 简单的测试代码: 我的
1回复

如何使用NDK为OpenCV引用hpp文件?

我无法打开OpenCV的头文件: 但是,通过在onCreate()调用OpenCVLoader.initDebug() ,我可以看到OpenCV可以正常运行(如果我将那些包含项OpenCVLoader.initDebug() onCreate() : 我读到您需要编辑An
1回复

找不到opencv.hpp吗? Android NDK

我在jniLibs目录中拥有所有预构建的Open CV .so文件,同时我也有一些使用OpenCV的C++文件。我有以下Android.mk和Application.mk脚本。 Android.mk Application.mk 为什么在尝试编译时, #include &l
1回复

如何在Android NDK中使用OpenCV BOWImgDescriptorExtractor?

我有一个带有原生部分的Android应用程序。 它将使用svm,所以我需要BOWImgDescriptorExtractor。 我的问题是我不能使用bowDE.compute(); 因为我在PC上使用它。 Android没有使用以下参数的实现: bowDe.compute(Mat&
3回复

Android NDK OpenCV - 未找到本机的实现

你能帮我处理我的错误吗? 我已经阅读了很多如何修复它们的技巧,但没有任何帮助。 我也知道已经有人问过类似的问题,但他们没有帮助我。 所以我给你一个机会问你: 我正在尝试使 Android 应用程序从图库中获取图像并调用用 C++ 编写的本机函数以使其变灰。 在我的主要活动是: ***在同一
1回复

获得支持NDK的OpenCV可在Android Studio中使用

我是openCV和android编程的新手,我想在我的项目中使用openCV。 现在我正试图在我的android工作室中运行openCV的第二个教程,但我总是得到以下NDK错误: NDK未配置。 从http://developer.android.com/tools/sdk/nd
1回复

OpenCV和Android Studio以及Ndk Panorama应用程序

我正在使用Android Studio尝试实现全景应用程序,我从一个名为pandorica链接的OpenCV示例开始: https : //code.google.com/archive/p/android-opencv-panorama/ 我设置了所有东西并构建了项目,但找不到我的功能针
1回复

使用OpenCV依赖关系编译代码Android NDK

我正在尝试在Android NDK上编译依赖于OpenCV的C ++代码。 我已经研究了几个答案(主要是this ),但是显然NDK仍然无法在LOCAL_C_INCLUDES变量中看到我给它的目录。 这是我的Application.mk: 这是我的Android.mk: