我使用OpenCV v 2.4.8在Visual Studio 2013上进行编程。 这是我的代码
#define _CRT_SECURE_NO_WARNINGS
#include <cv.h>
#include <highgui.h>
int main(int argc, char* argv[])
{
cv::Mat image = cv::imread(argv[1], 0);
image = image > 100;
std::vector<std::vector<cv::Point> > contours;
cv::findContours(image, contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE);
return 0;
}
在发布模式下一切正常,我无法理解为什么它在调试模式下不能正常工作。它导致调试断言在return 0;
(表达式:_pFirstBlock == pHead)。
我认为轮廓有问题。
非常感谢你的帮助。
答案 0 :(得分:1)
属性&gt; C ++&gt;代码生成&gt;运行时库:
如果MSVC运行时库设置为多线程调试DLL(/ MDd),那么这没问题(它工作正常)。
如果MSVC运行时库设置为多线程调试(/ MTd),则会抛出此错误,可以使用以下说明修复此错误。