OpenCV programs for android showing error

I downloaded the OpenCV project for Android, and the examples of the projects that were bundled with it contain several errors ... Only projects containing NDK code have errors .... The problem is that C ++ code shows a lot of errors ... Keywords such as jstring are not recognized. Please help me solve this problem ... Thank you for your precious time.

#include <jni.h>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/features2d/features2d.hpp>
#include <vector>

using namespace std;
using namespace cv;

extern "C" {
JNIEXPORT void JNICALL Java_org_opencv_samples_tutorial3_Sample3View_FindFeatures(JNIEnv* env, jobject, jint width, jint height, jbyteArray yuv, jintArray bgra)
{
    jbyte* _yuv  = env->GetByteArrayElements(yuv, 0);
    jint*  _bgra = env->GetIntArrayElements(bgra, 0);

    Mat myuv(height + height/2, width, CV_8UC1, (unsigned char *)_yuv);
    Mat mbgra(height, width, CV_8UC4, (unsigned char *)_bgra);
    Mat mgray(height, width, CV_8UC1, (unsigned char *)_yuv);

    //Please make attention about BGRA byte order
    //ARGB stored in java as int array becomes BGRA at native level
    cvtColor(myuv, mbgra, CV_YUV420sp2BGR, 4);

    vector<KeyPoint> v;

    FastFeatureDetector detector(50);
    detector.detect(mgray, v);
    for( size_t i = 0; i < v.size(); i++ )
        circle(mbgra, Point(v[i].pt.x, v[i].pt.y), 10, Scalar(0,0,255,255));

    env->ReleaseIntArrayElements(bgra, _bgra, 0);
    env->ReleaseByteArrayElements(yuv, _yuv, 0);
}

}

mistakes ..

Unresolved inclusion: <vector>
Symbol 'std' could not be resolved
+5
source share
2 answers

@Nolan's answer, followed by @Michael's comment, solved this for me. The following are the combined steps:

  • In Eclipse, right click on your project and select properties (this is on mac btw)
  • Expand C / C ++ General Information
  • GNU ++
  • :
    ${NDKROOT}/platforms/android-9/arch-arm/usr/include
    ${ProjDirPath}/../../sdk/native/jni/include
    ${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.4.3/libs/armeabi-v7a/include
    ${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.4.3/include
    
  • , ${NDKROOT} . C/++ Build - Environment

  • , -

.

+4

, , OpenCV, include:

${NDKROOT}/platforms/android-9/arch-arm/usr/include
${ProjDirPath}/../../sdk/native/jni/include
${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.4.3/libs/armeabi-v7a/include
${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.4.3/include
0

All Articles