dowi
dowi

Reputation: 1045

how to use opencv in android studio in native c++ code

how can i use openCV in an android studio's project - but i need to use it in other native cpp files and not in java.

all the guides and tutorials i found explain how to use openCV in java files (loadLibrary..) for example this and this

eventually i have all the .so in jniLibs folder or add openCV as a module with a dependency, but what do i "#include .. " ? how can i not get

error: 'cv' is not a namespace-name

for

using namespace cv;

? (and of course other openCV code...)

thanks a lot!

Upvotes: 5

Views: 5725

Answers (1)

dowi
dowi

Reputation: 1045

finally i succeeded:

i created my own android.mk file:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)


# OpenCV
OPENCV_INSTALL_MODULES:=on

include path/to/OpenCV-2.4.10-android-sdk/sdk/native/jni/OpenCV.mk


LOCAL_MODULE := glucomesdk
LOCAL_CFLAGS := -I/path tp/OpenCV-2.4.10-android-sdk/sdk/native/jni/include -Wall -Werror 
LOCAL_SRC_FILES := \ all my cpp files

LOCAL_C_INCLUDES += /path to/src/main/jni
LOCAL_C_INCLUDES += /path to/src/debug/jni
LOCAL_C_INCLUDES += /path to/OpenCV-2.4.10-android-sdk/sdk/native/jni/include

LOCAL_STATIC_LIBRARIES := /path to/OpenCV-2.4.10-android-sdk/sdk/native/libs/armeabi-v7a/libopencv_core.a

LOCAL_LDLIBS += -llog -ldl

include $(BUILD_SHARED_LIBRARY)

then i use this code in terminal to build the shared library (.so)

/path/to/android-ndk/ndk-build NDK_PROJECT_PATH=/path/to/project APP_BUILD_SCRIPT=/path/to/Android.mk NDK_OUT=/path/to/project/module/build/intermediates/ndk/debug/obj NDK_LIBS_OUT=/path/to/project/module/build/intermediates/ndk/debug/lib APP_STL=stlport_static APP_ABI=armeabi-v7a

after that i use gradle's assemble(debug) to create an aar file that contains both java code and the shared library

Upvotes: 5

Related Questions