El campo 'distancia' no se pudo resolver al usar OpenCV4Android

Estaba tratando de usar la función ORB en las aplicaciones de Android y crear un proyecto. Cuando uso BruteForceMatcher y escribo el código:dist=matches[i].distance, Mi IDE me notifica que "El campo 'distancia' no se pudo resolver". ¿Por qué sucedió esto?

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

using namespace std;
using namespace cv;

extern "C" {

JNIEXPORT int JNICALL Java_org_opencv_samples_tutorial2_Tuturial2Activity_CompareFeatures(JNIEnv*, jobject, jlong addrGray, jlong addrRgba);

JNIEXPORT int JNICALL Java_org_opencv_samples_tutorial2_Tuturial2Activity_CompareFeatures(JNIEnv*, jobject, jlong addrGray, jlong addrRgba)
{
    char img_filename1[]="/sdcard/src.jpg";
    char img_filename2[]="/sdcard/demo.jpg";
    Mat src1,src2;

    src1=imread(img_filename1,CV_LOAD_IMAGE_GRAYSCALE);
    src2=imread(img_filename2,CV_LOAD_IMAGE_GRAYSCALE);

    ORB orb;
    vector<KeyPoint> keys1,keys2;
    Mat descriptors1,descriptors2;
    orb(src1,Mat(),keys1,descriptors1);
    orb(src2,Mat(),keys2,descriptors2);

    BruteForceMatcher<HammingLUT> matcher;
    vector<DMatch> matches;
    matcher.match(descriptors1,descriptors2,matches);

    double max_dist=0; double min_dist=255;
    //--Quick calculation of max and min distances between keypoints

    for (int i=0;i<descriptors1.rows;i++)
    {
        double dist=matches[i].distance;

    }
    return 0;
}
}

preguntado el 11 de abril de 13 a las 04:04

1 Respuestas

Ir Propiedades del proyecto -> C/C++ General -> GNU C++ ->

Editar cambiar 4.x a 4.4.3 en ${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.x....

Respondido 01 Abr '14, 14:04

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.