когда я пытаюсь отладить свой проект, я получаю Debug Assertion Failed
в конце казни. Вы можете увидеть это ниже.
Я думаю, что проблема связана с функцией FAST из OpenCV, потому что, когда я закомментирую строку, которая содержит эту функцию, она работает нормально.
Это мой код:
#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.
Это в файле xmemory0 из VS в 120 строке.
Я нашел ответ. Я изменился в Property Pages
в моем проекте Platform Toolset
от Visual Studio 2015 (v140)
в Visual Studio 2013 (v120)
, Теперь все отлично работает. Кажется, что проблема не была в FAST
функция, но в этом случае, что я использую VS 2015
с OpenCV 3.0
, @drescherjm спасибо, что помогли мне сделать это.
Других решений пока нет …