【发布时间】: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