我正在尝试实现一个简单的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;
作为一名初学者,我不知道为什么这条线会破坏程序。
有人可以帮助我吗?
谢谢,
答案 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);
显示新结果。