2017-07-26 93 views
0

我正在使用ndk-build在本机Android应用程序上使用OpenCV(版本3.2)。 我收到了一个我无法解决的错误。Android应用程序中的“OpenCV错误:功能/功能未实现”

E/cv::error(): OpenCV Error: The function/feature is not implemented (Unknown/unsupported array type) in int cv::_InputArray::type(int) const, file /build/master_pack-android/opencv/modules/core/src/matrix.cpp, line 1931 
A/libc: Fatal signal 6 (SIGABRT) at 0x00001f38 (code=-6), thread 8011 (CameraHandlerTh) 

通过使用调试器,我发现引发此错误的代码部分。 cv::findHomography();

void Homography33::compute() { 
    if (valid) return; 

    std::vector<cv::Point2f> sPts; 
    std::vector<cv::Point2f> dPts; 
    for (int i=0; i<4; i++) { 
    sPts.push_back(cv::Point2f(srcPts[i].first, srcPts[i].second)); 
    } 
    for (int i=0; i<4; i++) { 
    dPts.push_back(cv::Point2f(dstPts[i].first - cxy.first, dstPts[i].second - cxy.second)); 
    } 
    cv::Mat homography = cv::findHomography(sPts, dPts); // throws error 
    for (int c=0; c<3; c++) { 
    for (int r=0; r<3; r++) { 
     H(r,c) = homography.at<double>(r,c); 
    } 
    } 

    valid = true; 
} 

任何想法?

在此先感谢,

+0

你可以得到整个堆栈跟踪? (至少是OpenCV相关的框架) –

回答

0

未来的参考。

搜索了一会儿......

我使用外部模块(即ROS靛蓝),其中包含的OpenCV的旧版本。它与我使用的新版本(OpenCV 3.2)发生冲突。

解决的办法是将android.mk(或cmake)中的两个模块分开。

但在此之后,对于NDK建造的用户,包括文件不会被跨模块找到正确... stackoverflow post