組み込みの OpenCV を使用してビデオ ファイルからフレームを抽出するネイティブ部分を備えたアプリを開発しています。これまでのところ、このエラーが発生しています:
.../jni/ocv.c:12: undefined reference to `cvCreateFileCapture'
私の Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := ocv
LOCAL_SRC_FILES := ocv.c
include $(BUILD_SHARED_LIBRARY)
アプリケーション.mk:
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := armeabi
ocv.c:
#include <string.h>
#include <jni.h>
#include <stdio.h>
#include <dlfcn.h>
#include <opencv/cv.h>
#include <opencv/highgui.h>
jstring Java_com_ice_salvador_MainActivity_invokeNativeFunction(JNIEnv* env, jobject javaThis) {
IplImage* currFrame = 0;
CvCapture* cap = 0;
cap = cvCaptureFromFile("/mnt/sdcard/vvv.3gp"); //test video
return (*env)->NewStringUTF(env, "Hello from native code!");
}
OpenCV-2.4.3-android-sdk、Android NDK r8b、Eclipse Juno、Windows を使用しています。
IplImage
、CvCapture
行を削除すると解決され、コードがコンパイルされますcvCaptureFromFile
-したがって、正しい方法であると思います。私はJNIとOpenCVが初めてです。あなたの助けに感謝!ありがとう。