c++ - 精明的边缘检测

标签 c++ visual-studio-2010 opencv

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

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

在进入面部追踪器的主循环之前

下面被注释掉的行打破了我的

程序,给出这个错误信息:

CVTest.exe 中 0x7709c41f 处的未处理异常:Microsoft C++ 异常:cv::Exception at memory location 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;

作为初学者,我不知道为什么这行代码会破坏程序。

有好心人可以帮帮我吗?

谢谢,

最佳答案

我刚刚注意到您有 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); 显示新结果。

关于c++ - 精明的边缘检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21678889/

相关文章:

c++ - 常量字段中的初始化列表不生成 operator=

c++ - filter2d() 与 gaussian kernel 和 GaussianBlur() 的区别

c++ - Flutter/Dart FFI 从 C++ 部分异步调用 Dart 方法

c++ - 使用 wxWidgets 的直方图示例

.net - Windows 桌面应用程序的现代 UI 的正确方法是什么?

asp.net-mvc - 如何使用 1 个解决方案实现对 2 个网站的支持

c++ - 使 std::cout 在同一行中一个接一个地输出多个字符串

c++ - 彩色图像的边缘检测CannyAlgorithm

python - 如何使用 python 3.x 检测字符的位置

c++ - cvGet2D 替代方案