好的!我想我知道了! 基本上需要遵循this tutorial,但只需替换Android.mk中的路径指向编译的完整版本的openCV,而不是openCV-Android-SDK(以及其他一些小的更改;对于那些我只是在这里复制的内容我在Android.mk
和Application.mk
)。
最后,我Android.mk
看起来像这样(OPENCVROOT
需要正确设置):
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
OPENCVROOT:= /path/to/opencv-2.4.10/platforms/build_android_arm
OPENCV_CAMERA_MODULES:=on
OPENCV_INSTALL_MODULES:=on
OPENCV_LIB_TYPE:=SHARED
include ${OPENCVROOT}/OpenCV.mk
LOCAL_SRC_FILES := main.cpp
LOCAL_LDLIBS += -llog
LOCAL_MODULE := hello
include $(BUILD_SHARED_LIBRARY)
而且Application.mk
看起来是这样的:
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := armeabi-v7a
APP_PLATFORM := android-19
只是一个简短的说明上与Android NDK编译的OpenCV :
对于使用NDK编译完整openCV,仍然可以使用提到的方法here;该描述基于NDK-r8e,但如果需要,可以下载NDK-r10d并使用它。我不得不在openCV源中关闭与cuda相关的部分,以便使用NDK成功编译它(只需在cmake
之后添加-D WITH_CUDA=OFF
到opencv-2.4.10/platforms/scripts/cmake_android_arm.sh
,在最后一行之后,完成这项工作!)。如果你需要非自由模块(如SURF和SIFT,不要从github克隆它,只需从here下载一个zip文件;顺便说一下,我使用了2.4.10版本)。
现在我可以访问我正在集成到Android应用程序中的本地C++代码中的几乎所有openCV函数!
我希望这也能帮助别人!
您可以从http://www.filtrlink.com获取一些书籍,并在搜索框中搜索opencv –