使用Open CV SIFT调试断言失败



希望有人能帮忙。我一直在尝试使用SIFT,即使是像这样最简单的程序也会导致调试断言失败。

int DoSift()
{
    string image2 ="G:/SIFT Test/Foods/f1.jpg";
    string image1 ="G:/SIFT Test/Foods/f2.jpg";
    Mat input = imread(image1, IMREAD_GRAYSCALE );
    Mat img_2 = imread( image2, IMREAD_GRAYSCALE );
    // const cv::Mat input = cv::imread("input.jpg", 0); //Load as grayscale
    cv::SiftFeatureDetector detector;
    std::vector<cv::KeyPoint> keypoints;
    detector.detect(input, keypoints);
    // Add results to image and save.
    cv::Mat output;
    cv::drawKeypoints(input, keypoints, output);`enter code here`
    cv::imwrite("sift_result.jpg", output);
   return Exit_Success(); //<- it happens here
}

我想它在这里的某个地方:

void _Tidy()
        {   // free all storage
        if (this->_Myfirst != pointer())
            {   // something to free, destroy and deallocate it
            this->_Orphan_all();
            _Destroy(this->_Myfirst, this->_Mylast);
            this->_Getal().deallocate(this->_Myfirst,
                this->_Myend - this->_Myfirst);**//--->......Here.....**
            this->_Myfirst = pointer();
            this->_Mylast = pointer();
            this->_Myend = pointer();
            }

异常详细信息显示:

**Debug assertion failed.
Program:...
File: f:ddvctoolsctr_bldself_x86crtsrcdbgheap.c
Line: 1322
Expression: _CrtIsValidHeapPointers(pUserData)**

问题出在visual studio 2012。切换到2010年很顺利。我相信2012并不像openCV。

相关内容

  • 没有找到相关文章

最新更新