0

经过与我和 OpenCV 的激烈斗争,我终于找到了这个教程:

OpenCV with MinGW on Eclipse Tutorial(滚动到“OpenCV - with CMake & MinGW”)

我按照编写的方式完成了所有操作,但每次我尝试启动应用程序时,它都会在几秒钟后停止响应,并显示 Windows 警报通信。我注意到,我可以自由运行标准 C++ 程序并包含头文件,但是在单行 OpenCV 代码之后它无法正常工作。也没有关于错误的信息。

4

2 回答 2

0

我也有一段时间让 OpenCV 运行,但最后我发现了一些有用的东西(我使用 Qt Creator 作为我的 IDE,而不是 Eclipse,但问题和解决方案可能是相似的)。

起初我尝试下载 OpenCV 2.4.8,但我发现它不包含任何 MinGW 二进制文件。我在网上关注了一个论坛并安装了 CMake,但似乎 OpenCV 2.4.8 不包含 MinGW 的 CMake 目标。在阅读了更多论坛之后,我下载了 OpenCV 2.4.3,并能够使用 CMake 和 MinGW 4.8(Qt 5.2 附带的版本)来构建 OpenCV。这让我可以编译我的程序并尝试运行它们。一些纯 c 命令甚至像 cvLoadImage 一样工作,但是任何像 imread 或 Mat::zeros(3,3, CV_8UC1) 这样的 c++ 命令都会导致崩溃。

我尝试使用不同的选项多次构建 openCV。一些网站建议关闭 SSE 和 SSE2 或构建调试版本,但这些都不适合我。

最后我最终下载了 TDM-GCC-32。我下载了按需安装程序并确保获得了编译器的 dw2 版本(不久前我花了一些时间处理 dw2 与 sjlj 的不兼容性)。最后,我使用 TDM-GCC 重建了 OpenCV,并将 TDM-GCC 设置为 Qt Creator 中的编译器。这最终成为解决方案。

我认为 OpenCV Mat 类型使用的引用计数/分配代码与某些版本的 MinGW 之间存在一些不兼容。我这样说是因为我所有的崩溃似乎都来自使用 openCV 矩阵的代码段。(似乎它没有正确初始化或其他东西)。切换到 TDM-GCC 编译器解决了这个问题。

于 2014-02-22T13:35:48.620 回答
0

为什么不试试官方教程http://docs.opencv.org/doc/tutorials/introduction/linux_eclipse/linux_eclipse.html#linux-eclipse-usage

这是 opencv 文档中的官方网站,应该可以帮助您入门,它包括帮助您在许多其他平台上入门的教程 http://docs.opencv.org/doc/tutorials/introduction/table_of_content_introduction/table_of_content_introduction.html#table-内容介绍

于 2013-11-01T22:18:52.847 回答