findContours:OpenCV 已触发断点
Posted
技术标签:
【中文标题】findContours:OpenCV 已触发断点【英文标题】:findContours: OpenCV has triggered a breakpoint 【发布时间】:2015-10-11 20:39:07 【问题描述】:我正在尝试在 OpenCV 中使用 findContours。当我调试我的程序时,一切正常,直到
findContours(canny_output, contours, hierarchy, RETR_TREE, CHAIN_APPROX_SIMPLE, Point(0, 0));
我收到消息:
OpenCVFirst.exe 已触发断点
我已经读到这可能是因为链接了错误的 OpenCV 文件,但我在最后用 d(用于调试)链接了正确的文件。
我的代码就像在官方 OpenCV 示例中一样: http://docs.opencv.org/doc/tutorials/imgproc/shapedescriptors/find_contours/find_contours.html
我在带有 Windows 10 的 Visual Studio 2015 中使用 OpenCV 3.0。
【问题讨论】:
你是否也用 VS 2015 编译器重新编译过 OpenCV? 由于您使用的是 VS2015 (MSVC14),我假设您自己编译了这些库。 findContours 图像的输入图像格式是否正确(CV_8UC1)? canny_output.type() 返回 0,所以我认为它是 CV_8UC1 对吗?你是什么意思重新编译它?我提取文件并包含它们; CMake 什么都没有 是的,canny 输出没问题。您需要使用 MSVC14 重建 OpenCV。到目前为止,您的代码偶然工作。 你确定它是偶然的吗?其他 OpenCV 命令有效。 【参考方案1】:还是不行。这是我所做的:
下载 CMake 并按照安装向导进行操作。
下载最新版本的OpenCV(这可能需要一些时间,具体取决于您的互联网连接)。
启动 CMake GUI 并设置源/发布目录。
我没有调整默认设置:
等到“配置完成”写入输出行。然后,我单击“生成”并等待生成生成文件。
它说'生成完成'。
我转到发布文件夹并使用 Visual Studio 打开“OpenCV.sln”(我使用的是 Visual Studio 2015)
现在它加载了一些文件。当它在左下角告诉我“准备就绪”时,我点击了 Build -> Build solution (Strg + Shift + B)
然后,我将新发布文件夹中的新库包含到我现有的 OpenCV 项目中。我仍然遇到同样的错误。
【讨论】:
以上是关于findContours:OpenCV 已触发断点的主要内容,如果未能解决你的问题,请参考以下文章
Opencv 的“findContours”错误:线程停止,代码为 -1073740777