My development environment is set up as follows:
- android-ndk-r10d (install path:
D:\adt-bundle-windows-x86_64-20140702\android-ndk-r10d\
) - OpenCV-2.4.10-android-sdk (install path:
D:\CODE\OpenCV-2.4.10-android-sdk\
), - OpenCV-2.4.10 (install path:
D:\CODE\OpenCV-2.4.10\
),
Building the nonfree module
-
We actually only need to copy a few files from
Copy the folder fromOpenCV-2.4.10
source code toOpenCV-2.4.10-android-sdk
, namely:OpenCV-2.4.10\sources\modules\nonfree\include\opencv2\
toOpenCV-2.4.10-android-sdk\sdk\native\jni\include\opencv2
. -
Create a folder to hold our new project for
libnonfree.so
. Here, I call itlibnonfree
. Create ajni
folder underlibnonfree
. Copy the following files fromOpenCV-2.4.10\sources\modules\nonfree\src
tolibnonfree\jni\
folder:- (use the original file)
- (use the original file)
-
Building
Createlibnonfree.so
:Android.mk
andApplication.mk
scripts. ThisAndroid.mk
is used to buildlibnonfree.so
.- (you should modify
OPENCV_PATH
where yourOpenCV-2.4.10-android-sdk
is)
cd
into the project folderlibnonfree
and typendk-build
to build thelibnonfree.so
. - (you should modify
So far, you have got libnonfree.so
along with libopencv_java.so
and libgnustl_shared.so
in libnonfree\libs\armeabi-v7a
folder.
Building a sample application
-
Create a project folder call
libnonfree_demo
. Create ajni
folder inside the project folder. Then copylibnonfree.so
along withlibopencv_java.so
andlibgnustl_shared.so
intojni
. -
Create a in
jni
. It is simple SIFT test program. It basically reads an image and detects the keypoints, then extracts feature descriptors, finally draws the keypoints to an output image. -
Create
Android.mk
andApplication.mk
insidejni
:- (you should modify
OPENCV_PATH
where yourOpenCV-2.4.10-android-sdk
is)
cd
into the project folderlibnonfree_demo
and typendk-build
to build thelibnonfree_demo.so
. - (you should modify
At this point you can easily extend the sample app with your SVMDetector
. Just copy the source and include files int to the folder libnonfree_demo\jni
and add cpp files to LOCAL_SRC_FILES
in Android.mk
.
The whole source can be downloaded from: .
Original source from: