我在Ubuntu上使用OpenCV 2.4.4和Eclipse Juno。 我的问题类似于OpenCV for android sample programs showing error
但现在正在把我赶出去。我周末的大部分时间都在努力让ndk和opencv库发挥得很好,但我仍然无法让它工作。我在我的测试C ++ cpp文件中包含以下内容 -
#include <jni.h>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <cstdlib>
using namespace cv; //this is a problem
...
...
它告诉我当我尝试构建“无法找到命名空间cv”时。 哦,我必须写错路径或者没有使用正确的库,对吧? 错误。 在终端中, ndk-build 构建.so文件而没有任何错误。我可以在项目文件夹中看到它们。 但是,如果我尝试在eclipse中构建,即在虚拟设备或真实设备上构建apk for tesitng,那么我得到命名空间cv错误并且构建失败然后在cpp文件中cv加下划线红色并在eclipse文件中标记为红色,我甚至无法尝试构建,直到此文件被“更正”。
显然我做错了什么。但是,如果我关闭我的eclipse项目,然后重新打开它,cpp文件不再标记为红色,我可以进行apk构建。如果我尝试打开cpp文件,红色会返回,并且在我完成项目关闭/打开的rigmarole之前不会再发生构建。
老实说,我不知道问题的原因是什么。任何帮助将不胜感激。
我的android.mk文件:
include $(CLEAR_VARS)
OPENCV_CAMERA_MODULES:=off
OPENCV_INSTALL_MODULES:=on
OPENCV_LIB_TYPE:=STATIC
include /the/correct/path/tp/opencv/sdk/native/jni/OpenCV.mk
LOCAL_MODULE := mylib
LOCAL_SRC_FILES := mylib.cpp
include $(BUILD_SHARED_LIBRARY)
Application.mk
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := all #i have tried various targets
APP_PLATFORM := android-8
APP_MODULES := mylib
我认为这不会很困难。我应该补充一点,我已经成功地在其他rproject中使用了opencv,我使用Eclipse 3.5(我认为)和OpenCV 2.4.2构建在WIndows上
EDIT 我还想说我刚刚做了一个快速的脏测试opencv操作。我写了一个快速的Sobel函数,并将其称为Java文件中的本机函数,并成功地“sobelled”了一个位图。当然,我仍然必须关闭/打开我的项目才能做到这一点。
答案 0 :(得分:1)
嗨我和你有同样的问题,在我添加下面的“opencv android sdk”之后,包含问题的路径就消失了。
exp:C:\ project \ OpenCV-2.4.6-android-sdk \ sdk \ native \ jni \ include 用你的opencv-android-sdk路径切换路径。
答案 1 :(得分:0)
我知道这可能为时已晚,但在我的情况下(Windows + Eclipse)我更正了这个问题,只是将反斜杠“\”更改为斜线“/”在路径和符号包含opencv jni libs。
实施例: 错误的H:\ opencv \ sdk \ native \ jni \ include 正确H:/ opencv / sdk / native / jni / include