感谢大量的教程从trunk构建openCV,(具体而言)我跟着this thread,修改了android.mk,如下所示,并成功构建了几乎所有额外模块的OpenCV for Android。
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
OPENCV_CAMERA_MODULES:=on
OPENCV_INSTALL_MODULES:=on
include OpenCV.mk
LOCAL_MODULE := opencv_java
MY_PREFIX := $(LOCAL_PATH)
MY_SOURCES := $(wildcard $(MY_PREFIX)/*.cpp)
LOCAL_SRC_FILES := $(MY_SOURCES:$(MY_PREFIX)%=%)
LOCAL_LDLIBS += -llog -ldl -ljnigraphics
include $(BUILD_SHARED_LIBRARY)
然后按照official tutorial,我的cmake命令:
cd opencv\platfroms\
mkdir build_android_arm
cd build_android_arm
cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=..\android\android.toolchain.cmake -DOPENCV_EXTRA_MODULES_PATH=\path\to\opencv_contrib-master\modules -DWITH_CUDA=OFF ..\..
make
现在,我了解如何将OpenCV库作为Android项目包含在内,并将项目示例放入eclipse中以使用一些现有的OpenCV工具。但是我不清楚,我怎样才能轻松使用额外的模块。该库似乎没有包含额外的模块。一些教程说从头开始使用NDK构建,但这不会使用现有的链接OpenCV库。我想知道是否有更智能的方法将额外的模块集成到当前设置中。感谢~~
答案 0 :(得分:0)
您不需要将其包含为Android项目;通常,您将在项目中将其用作预构建的库。
如果您希望直接从Java访问附加模块,则需要编写自己的JNI粘合层:不要指望 libopencv_java.so 神奇地包含用于您的额外模块的API添加到它。