FAST函数OpenCV Debug Assertion Faild

时间:2015-10-19 15:58:55

标签: c++ opencv vs-2015-preview

当我尝试调试我的项目时,我会在执行结束时得到Debug Assertion Failed。你可以在下面看到它。

Debug Assertion Filed

我认为这个问题与OpenCV的FAST函数有关,因为当我注释掉包含这个函数的行时,它运行正常。

这是我的代码:

#pragma once
#include <opencv2/core/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <iostream>
#include <string>
using namespace cv;
using namespace std;
int main()
{
    string table[2] = { "background_2.jpg","foreground_2.jpg" };
    Mat firstImage = imread(table[0], IMREAD_COLOR);
    Mat secondImage = imread(table[1], IMREAD_COLOR);
    Mat result;
    subtract(firstImage, secondImage, result);
    Mat resultGray, firstImageGray, secondImageGray;

    cvtColor(firstImage, firstImageGray, COLOR_BGR2GRAY);
    cvtColor(secondImage, secondImageGray, COLOR_BGR2GRAY);
    cvtColor(result, resultGray, COLOR_BGR2GRAY);

    Canny(firstImageGray, firstImageGray, 33, 100, 3);
    Canny(secondImageGray, secondImageGray, 33, 100, 3);
    Canny(resultGray, resultGray, 33, 100, 3);


    vector <KeyPoint> keyPoints;
    FAST(resultGray, keyPoints, 9, true);//Probably here is the problem.
    Mat resultKeyPoints;
    drawKeypoints(resultGray, keyPoints, resultKeyPoints, 156);

    return 0;
}

我在Visual Studio 2015 Preview中构建我的项目。

当我点击“重试”以断开该断言时,我得到以下异常:

Unhandled exception at 0x00007FF851891B4B (ucrtbased.dll) in 

OpenCVProject.exe: An invalid parameter was passed to a function that considers invalid parameters fatal.

这是来自VS的120行xmemory0文件。

1 个答案:

答案 0 :(得分:2)

我找到了答案。我将项目Property Pages中的Platform ToolsetVisual Studio 2015 (v140)更改为Visual Studio 2013 (v120)。现在它工作正常。似乎问题不在FAST函数中,但在这种情况下,我将VS 2015OpenCV 3.0一起使用。 @drescherjm谢谢你的帮助我这样做。