Canny边缘检测

时间:2014-02-10 13:44:37

标签: c++ visual-studio-2010 opencv

我正在尝试实现一个简单的canny边缘检测器

为了检测面部跟踪器内的发线。

在进入facetracker的主循环之前

注释掉的以下行会破坏我的

程序,给出此错误消息:

CVTest.exe中0x7709c41f处的未处理异常:Microsoft C ++异常:cv ::内存位置0x004fb300处的异常..

cout << "Hair Line Detection ...";

Mat GrayFace;

threshold( gray, GrayFace, 65, 255, CV_THRESH_BINARY);

// Canny( GrayFace, GrayFace, 1, 150, 3, false );

threshold( GrayFace, GrayFace, 254, 255, CV_THRESH_BINARY );

Mat EdgeDetection;

EdgeDetection = GrayFace;

cout << "Done!" << endl;

作为一名初学者,我不知道为什么这条线会破坏程序。

有人可以帮助我吗?

谢谢,

1 个答案:

答案 0 :(得分:1)

我刚注意到你有2条门槛线?一次性对它进行两次阈值处理的目的是什么? (因为你评论了canny线)

改变你的

cv::threshold( gray, GrayFace, 65, 255, CV_THRESH_BINARY);

cv::threshold(gray, GrayFace, 0, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);

让我知道它现在是否有效。使用cv::imshow("Test GrayFace", GrayFace);显示新结果。