opencv,findContour错误(windows breakpoint),c ++,ms Visual studio 2010,win7,64bit

时间:2013-05-05 23:31:23

标签: opencv

我在opencv.org上问过这个问题,没有任何运气,所以不希望有人在这里帮助我。

我正在开发面部/眼部跟踪软件。测量眼睛的某些值(例如眨眼)。但是当我想使用方法时

cv::findContour()

程序崩溃了:“Windows在eyeTracking.exe中触发了一个断点.....” 控制台中的opencv没有错误消息。

m = ~currentWebCamFrame(trackP.EyePosition(false));
cv::cvtColor(m,n, CV_RGB2GRAY);
cv::threshold(n, m, threshold-value, 255,CV_THRESH_BINARY);
cv::erode(m, n, cv::Mat(),cv::Point(-1,-1),n_erode_dilate);
cv::dilate(n, m, cv::Mat(),cv::Point(-1,-1),n_erode_dilate);

test = m.clone();

if((!test.empty()) && (test.type() == CV_8UC1)){
std::vector< std::vector<cv::Point> > contours;
cv::findContours( test, contours, CV_RETR_EXTERNAL,CV_CHAIN_APPROX_NONE );
};

我搜索了互联网,发现了几个类似的帖子,没有任何解决方案。

我的帖子@ opencv.org: http://answers.opencv.org/question/12887/opencvfindcontour-crashes-v244-ms-visual-studio/ 在调用findContour之前图像可见的位置。

我已经尝试解决这个问题几天了,没有任何运气。所以我真的希望有人能帮助我解决这个问题。

修改 在断点窗口上单击“继续”时,将显示以下消息:

Unhandled exception at 0x770540f2 in eyeTracking.exe: 0xC0000374: A heap is damaged.

谢谢!

2 个答案:

答案 0 :(得分:5)

您可能需要检查已使用的DLL。将调试与发布dll混合也可能导致问题。

答案 1 :(得分:0)

问题是我链接到错误的opencv库。我在调试期间使用了一些发布库。更改为调试库使一切正常。