Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带非自由软件包的OpenCV Android(SURF)_Android_Opencv_Image Processing_Android Ndk - Fatal编程技术网

带非自由软件包的OpenCV Android(SURF)

带非自由软件包的OpenCV Android(SURF),android,opencv,image-processing,android-ndk,Android,Opencv,Image Processing,Android Ndk,我正在尝试制作一个应用程序,可以在Android中检测图片的相似性。我正试图用OpenCV和SurfFeatureDetector来实现这一点。但现在在OpenCV中,它不是包nonfree,我试图按照本教程进行操作 但我有个问题: 说明资源路径位置类型生成:* [obj/local/armeabi-v7a/libmixed_sample.so]错误1 appname C/C++ 目标'obj/local/armeabi-v7a/libmixed_sample.so'的问题配方 appname行

我正在尝试制作一个应用程序,可以在Android中检测图片的相似性。我正试图用OpenCV和SurfFeatureDetector来实现这一点。但现在在OpenCV中,它不是包nonfree,我试图按照本教程进行操作 但我有个问题:

说明资源路径位置类型生成:* [obj/local/armeabi-v7a/libmixed_sample.so]错误1 appname C/C++

目标'obj/local/armeabi-v7a/libmixed_sample.so'的问题配方 appname行588失败,外部位置: C:\NVPACK\android-ndk-r9d\build\core\build-binary.mk C/C++

问题未定义对“cv::SURF::SURFdouble,int,int,bool, 布尔appname第54行,外部位置: C:\NVPACK\android-ndk-r9d\toolschains\arm-linux-androideabi-4.6\prebuild\windows\arm-linux-androideabi\bin\ld.exe: .\obj\local\armeabi-v7a\objs debug\mixed_sample\jni_part.o:in 作用 Java_sk_appname_myoppencity_mojaskukuska:jni\jni_part.cpp C/C++

问题未定义对“VTT for cv::SURF”appname第107行的引用, 外部位置: C:\NVPACK\android-ndk-r9d\toolschains\arm-linux-androideabi-4.6\prebuild\windows\arm-linux-androideabi\bin\ld.exe: .\obj\local\armeabi-v7a\objs debug\mixed_sample\jni_part.o:in 作用 cv::SURF::~SURF:sdk\native\jni\include\opencv2\nonfree\features2d.hpp C/C++

问题未定义对“vtable for cv::SURF”appname行的引用 107,外部位置: C:\NVPACK\android-ndk-r9d\toolschains\arm-linux-androideabi-4.6\prebuild\windows\arm-linux-androideabi\bin\ld.exe: .\obj\local\armeabi-v7a\objs debug\mixed_sample\jni_part.o:in 作用 cv::SURF::~SURF:sdk\native\jni\include\opencv2\nonfree\features2d.hpp C/C++ 问题

我真的很绝望,我花了3天的时间,通过大量的教程来完成这项工作,但没有任何效果。这是Android.mk:

我不知道是否正确插入了库,但在/libs/armeabi-v7a中有构建的非自由库。另外,当我在jni_part.cpp中导入我想使用SURF include的内容时,没有错误也可以。请帮帮我,如果你能给我任何建议,那就太好了。谢谢。

主要问题是Android.mk

不可能添加2个本地文件,我不知道为什么,在这里我真的是个傻瓜

这就是最终版本:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

OPENCV_CAMERA_MODULES:=on
OPENCV_INSTALL_MODULES:=on
include ./sdk/native/jni/OpenCV.mk

LOCAL_MODULE    := mixed_sample
LOCAL_SRC_FILES := jni_part.cpp \
    nonfree_init.cpp \
 precomp.cpp \
 sift.cpp \
 surf.cpp
LOCAL_LDLIBS +=  -llog -ldl
include $(BUILD_SHARED_LIBRARY)

LOCAL_C_INCLUDES:= ./sdk/native/jni/include
LOCAL_MODULE    := nonfree
LOCAL_CFLAGS    := -Werror -O3 -ffast-math
LOCAL_LDLIBS    += -llog
这真是个奇怪的问题,但现在一切似乎都很好

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

OPENCV_CAMERA_MODULES:=on
OPENCV_INSTALL_MODULES:=on
include ./sdk/native/jni/OpenCV.mk

LOCAL_MODULE    := mixed_sample
LOCAL_SRC_FILES := jni_part.cpp \
    nonfree_init.cpp \
 precomp.cpp \
 sift.cpp \
 surf.cpp
LOCAL_LDLIBS +=  -llog -ldl
include $(BUILD_SHARED_LIBRARY)

LOCAL_C_INCLUDES:= ./sdk/native/jni/include
LOCAL_MODULE    := nonfree
LOCAL_CFLAGS    := -Werror -O3 -ffast-math
LOCAL_LDLIBS    += -llog