我正在尝试实现一个简单的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);
显示新结果。