好的!我想我知道了! 基本上需要遵循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 –