2017-07-26 94 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