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

为了检测发际线,在面部追踪器中。

进入Facetracker的主循环之前

下面的行注释掉了我

程序,给出以下错误信息:

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

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;

作为一个初学者,我不知道为什么这行会中断程序。

有人可以帮我吗?

谢谢,

最佳答案

我只是注意到您有2条阈值线?一次性将其阈值两次的目的是什么? (因为您评论了精明的话)

改变你的

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);显示新结果。

09-29 21:29