Face detection example updated. Dtetection base tracker mode added.
This commit is contained in:
21
samples/android/face-detection/jni/Android.mk
Normal file
21
samples/android/face-detection/jni/Android.mk
Normal file
@@ -0,0 +1,21 @@
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
OPENCV_CAMERA_MODULES:=off
|
||||
|
||||
include ../includeOpenCV.mk
|
||||
ifeq ("$(wildcard $(OPENCV_MK_PATH))","")
|
||||
#try to load OpenCV.mk from default install location
|
||||
include $(TOOLCHAIN_PREBUILT_ROOT)/user/share/OpenCV/OpenCV.mk
|
||||
else
|
||||
include $(OPENCV_MK_PATH)
|
||||
endif
|
||||
|
||||
LOCAL_SRC_FILES := DetectionBaseTracker.cpp
|
||||
LOCAL_C_INCLUDES := $(LOCAL_PATH)
|
||||
LOCAL_LDLIBS += -llog -ldl
|
||||
|
||||
LOCAL_MODULE := detection_base_tacker
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
3
samples/android/face-detection/jni/Application.mk
Normal file
3
samples/android/face-detection/jni/Application.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
APP_STL := gnustl_static
|
||||
APP_CPPFLAGS := -frtti -fexceptions
|
||||
APP_ABI := armeabi-v7a
|
53
samples/android/face-detection/jni/DetectionBaseTracker.cpp
Normal file
53
samples/android/face-detection/jni/DetectionBaseTracker.cpp
Normal file
@@ -0,0 +1,53 @@
|
||||
#include <DetectionBaseTracker.h>
|
||||
#include <opencv2/core/core.hpp>
|
||||
#include <opencv2/contrib/detection_based_tracker.hpp>
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
using namespace std;
|
||||
using namespace cv;
|
||||
|
||||
vector<Rect> RectFaces;
|
||||
|
||||
inline void vector_Rect_to_Mat(vector<Rect>& v_rect, Mat& mat)
|
||||
{
|
||||
mat = Mat(v_rect, true);
|
||||
}
|
||||
|
||||
JNIEXPORT jlong JNICALL Java_org_opencv_samples_fd_DetectionBaseTracker_nativeCreateObject
|
||||
(JNIEnv * jenv, jclass jobj, jstring jFileName, jint faceSize)
|
||||
{
|
||||
const char* jnamestr = jenv->GetStringUTFChars(jFileName, NULL);
|
||||
string stdFileName(jnamestr);
|
||||
DetectionBasedTracker::Parameters DetectorParams;
|
||||
if (faceSize > 0)
|
||||
DetectorParams.minObjectSize = faceSize;
|
||||
return (jlong)new DetectionBasedTracker(stdFileName, DetectorParams);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBaseTracker_nativeDestroyObject
|
||||
(JNIEnv * jenv, jclass jobj, jlong thiz)
|
||||
{
|
||||
delete (DetectionBasedTracker*)thiz;
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBaseTracker_nativeStart
|
||||
(JNIEnv * jenv, jclass jobj, jlong thiz)
|
||||
{
|
||||
((DetectionBasedTracker*)thiz)->run();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBaseTracker_nativeStop
|
||||
(JNIEnv * jenv, jclass jobj, jlong thiz)
|
||||
{
|
||||
((DetectionBasedTracker*)thiz)->stop();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBaseTracker_nativeDetect
|
||||
(JNIEnv * jenv, jclass jobj, jlong thiz, jlong imageGray, jlong faces)
|
||||
{
|
||||
((DetectionBasedTracker*)thiz)->process(*((Mat*)imageGray));
|
||||
((DetectionBasedTracker*)thiz)->getObjects(RectFaces);
|
||||
vector_Rect_to_Mat(RectFaces, *((Mat*)faces));
|
||||
}
|
53
samples/android/face-detection/jni/DetectionBaseTracker.h
Normal file
53
samples/android/face-detection/jni/DetectionBaseTracker.h
Normal file
@@ -0,0 +1,53 @@
|
||||
/* DO NOT EDIT THIS FILE - it is machine generated */
|
||||
#include <jni.h>
|
||||
/* Header for class org_opencv_samples_fd_DetectionBaseTracker */
|
||||
|
||||
#ifndef _Included_org_opencv_samples_fd_DetectionBaseTracker
|
||||
#define _Included_org_opencv_samples_fd_DetectionBaseTracker
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
/*
|
||||
* Class: org_opencv_samples_fd_DetectionBaseTracker
|
||||
* Method: nativeCreateObject
|
||||
* Signature: (Ljava/lang/String;F)J
|
||||
*/
|
||||
JNIEXPORT jlong JNICALL Java_org_opencv_samples_fd_DetectionBaseTracker_nativeCreateObject
|
||||
(JNIEnv *, jclass, jstring, jint);
|
||||
|
||||
/*
|
||||
* Class: org_opencv_samples_fd_DetectionBaseTracker
|
||||
* Method: nativeDestroyObject
|
||||
* Signature: (J)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBaseTracker_nativeDestroyObject
|
||||
(JNIEnv *, jclass, jlong);
|
||||
|
||||
/*
|
||||
* Class: org_opencv_samples_fd_DetectionBaseTracker
|
||||
* Method: nativeStart
|
||||
* Signature: (J)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBaseTracker_nativeStart
|
||||
(JNIEnv *, jclass, jlong);
|
||||
|
||||
/*
|
||||
* Class: org_opencv_samples_fd_DetectionBaseTracker
|
||||
* Method: nativeStop
|
||||
* Signature: (J)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBaseTracker_nativeStop
|
||||
(JNIEnv *, jclass, jlong);
|
||||
|
||||
/*
|
||||
* Class: org_opencv_samples_fd_DetectionBaseTracker
|
||||
* Method: nativeDetect
|
||||
* Signature: (JJJ)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBaseTracker_nativeDetect
|
||||
(JNIEnv *, jclass, jlong, jlong, jlong);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
Reference in New Issue
Block a user