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

findContours 在 opencv 中找不到轮廓

OpenCV中的findContours崩溃编译器

OpenCV 2.4.2 findContours(),如何只得到直线轮廓

OpenCV findContours 函数问题

为啥openCV中的输入图像findContours()要转灰度?