我试图在VS2015中使用opencv运行一个小而简单的程序。代码如下:
#include <opencv/cv.h>
#include <opencv/highgui.h>
#include <opencv2/nonfree/features2d.hpp>
#include<string>
using namespace cv;
using namespace std;
int main() {
Mat input1=imread("d_1.jpg", 0);
Mat input2 = imread("d_2.jpg", 0);
SiftFeatureDetector detector1,detector2;
vector<KeyPoint> keypoints1,keypoints2;
detector1.detect(input1, keypoints1);
/*detector2.detect(input2, keypoints2);
vector<DMatch> matches1to2;
Mat output1,output2,output;
drawKeypoints(input1, keypoints1, output1);
drawKeypoints(input2, keypoints2, output2);
drawMatches(input1,keypoints1,input2,keypoints2,matches1to2,output);
imwrite("first.jpg", output1);
imwrite("second.jpg", output2);
*/
return 0;
}
我得到一个Debug Assertion失败错误,提到的表达式是&#34; reinterpret_cast(_ptr_ptr)[ - 1] == _ BIG_ALLOCATION_SENTINEL&#34;&amp;&amp; 0,提到的文件是Microsoft visual studio14 \ vc \ include \ xmemory0行:110。
我在这里查找了其他解决方案,例如将平台更新到2010并检查配置以确保所有包含的lib文件都属于正确的VC版本。这最终给了我更多的错误。所以我恢复到原始配置并逐行运行此代码以查看哪个行有问题cos其他方面,程序完全运行,给出输出并且在return语句之后报告错误。 在detect.detect语句后弹出错误,我不确定是什么问题。任何帮助表示赞赏!