【问题标题】:Android Studio app using openCV with openCL使用带有 openCL 的 openCV 的 Android Studio 应用程序
【发布时间】:2018-07-15 21:00:24
【问题描述】:

我对 Android 很陌生,我必须使用 openCV 编写一个 Android 应用程序。

我尝试在 Android studio 下运行Use OpenCL in Android camera preview based CV application 教程。

我下载了适用于 android 的 openCV 3.4 并将模块导入到我的项目中。

我使用 adb pull 从我的三星 J5(我知道它支持 openCL)获取 libOpenCL.so。

我下载了 OpenCL 1.1 头文件并将它们放在 /usr/include/CL 中

我整合了tutorial samples repo 中的java 和cpp 文件,并将cpp 添加到CMake 中

在我的 CMakeList.txt 中有:

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
         src/main/cpp/jni.c
         src/main/cpp/CLProcessor.cpp)

但是我遇到了很多错误,比如

错误:(749, 23) 错误:使用未声明的标识符“malloc”;你的意思是“alloca”吗?

错误:(36, 2) 错误:仿生头文件 ctype.h 既没有定义 _U 也没有定义 _CTYPE_U

由于这是我的第一个 Android 项目,我完全迷失了(我阅读了很多论文/答案...)。

谁能帮帮我?

编辑:我找到了为什么会出现这些特定的编译错误:我检索了 openCL 1.1 标头并将它们更改为 1.2 固定编译错误。

我设法用 openCV 成功编译了 openCL(但即使我的设备有 openCL 和 CL-GL 互操作,该平台根本没有 openCL 扩展)。

(我有 Debian 9.3 下的 Android Studio 3.0.1。)

【问题讨论】:

  • 一步一步做,首先尝试只集成OpenCV,当一切正常时,尝试OpenCL。

标签: android c++ android-studio opencv opencl


【解决方案1】:

此编译错误是由使用 openCL 1.1 标头引起的。请改用 openCl 1.2。

【讨论】:

    猜你喜欢
    • 2016-02-04
    • 2017-01-14
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 2015-10-15
    相关资源
    最近更新 更多