几天来我一直在寻找一个好的指南,但我找不到最新版本的 Qt 和 OpenCv。我听说他们都很好,所以我想和他们一起做一个项目。我是 Qt 和 OpenCv 的初学者,你能一步一步告诉我吗?
1 回答
我已经为此苦苦挣扎了一段时间,今天早上就开始工作了。我想我会通过发布我的发现来回馈这个美妙的社区(因为它在许多场合都帮助了我)。享受!
我花了很多时间试图让 qt5 和 opencv 2.4.3 工作(实际上他们在我开始工作之前发布了 opencv 2.4.4。)我一直在看不少教程,但是迄今为止最好的一个是这个,非常重要,非常感谢:
http://www.laganiere.name/opencvCookbook/chap1s1_2.shtml
我不能强调本教程对我有多大帮助,我正在编写本指南作为补充。大多数情况下,我提供了编译器和库的更新路径,并描述了如何处理我在此过程中遇到的错误。使用食谱教程获取图片和更详细的说明。
但正如我暗示的那样,事情并非没有痛苦并且按照说明进行,所以我想我会分享我为解决问题所做的事情,希望这会对某人有所帮助。
注意:我不完全确定我在一半的时间里在做什么,当有疑问时,我只是倾向于跟随我的直觉,所以如果有更多知识和经验的人发现不准确的东西,请告诉我,我会纠正它. 这就是我所做的,它已经为我解决了,我现在正在使用 C++ 在 qt creator 5 中构建 openCV 程序。
我使用了以下路径:
Qt: C:\软件\Qt
OpenCV解压目录: c:\software\opencv-win
OpenCV 安装目录: c:\software\opencvMinGW
下载:
好的,所以对于初学者来说,使用 MinGW 下载最新的 qt 库和创建者(在我的例子中是 5.0.1)
然后下载openCV,在我的例子中是2.4.4
下载 CMake(目前版本 2.8.10.2)
安装:
安装 Qt(这将需要相当长的时间)。
运行 openCV exe,它将提取您需要的所有文件。如前所述,我使用 C:\software\opencv-win 作为提取它们的位置。
安装 CMake。确保选择“将 CMake 添加到所有用户的系统路径”(或类似选项)。
将 C:\software\qt\5.0.1\mingw47_32\bin (或等效项)添加到系统变量中的路径(如何执行此操作在我开头链接的指南中进行了描述)
重新启动计算机。
编译 OpenCV:
启动 Cmake-gui。在“源代码在哪里:”下,您浏览到解压缩 opencv 的位置(在我的情况下为 C:\software\opencv-win),然后在“在哪里构建二进制文件”中,输入您想要完成的库的位置(我使用 c:\software\opencvMinGW),然后单击生成并创建目录。在弹出窗口中,选择“MinGW makefiles”和“Specify native compilers”。在 C 中,对我来说,路径变成了“C:/software/qt/Tools/MinGW/bin/gcc.exe”,而对于 C++“C:/software/qt/Tools/MinGW/bin/g++.exe”,你相应地输入您安装 Qt 的位置。
按配置。
对我来说,这就是事情变得时髦的地方。我收到一条错误消息:
“CMake 错误:CMake 无法找到与“MinGW Makefiles”对应的构建程序。CMAKE_MAKE_PROGRAM 未设置。您可能需要选择不同的构建工具。CMake 错误:CMake 无法找到与“MinGW Makefiles”对应的构建程序”。CMAKE_MAKE_PROGRAM 未设置。您可能需要选择不同的构建工具。CMake 错误:未设置内部 CMake 变量所需的错误,cmake 可能未正确构建。缺少变量是:CMAKE_CXX_COMPILER_ENV_VAR CMake 错误:找不到 cmake 模块文件:C:/software/opencvMinGWblah/CMakeFiles/2.8.10.2/CMakeCXXCompiler.cmake CMake 错误:错误需要内部 CMake 变量未设置,cmake 可能未正确构建。缺少变量是:CMAKE_C_COMPILER_ENV_VAR CMake 错误:找不到 cmake 模块文件:C:/software/opencvMinGWblah/CMakeFiles/2.8.10.2/CMakeCCompiler.cmake 配置不完整,出现错误!”
我怀疑这与make-program有关。呃。但是如何解决呢?
我通过检查“高级”按钮、找到条目 CMAKE_MAKE_PROGRAM 并指定路径“C:/software/qt/Tools/MinGW/bin/mingw32-make.exe”来解决它
一切都很好,就一切都好。或者是吗?
选中“Grouped”按钮,打开 WITH 类别,选中“WITH_QT”。按配置。另一块错误:
C:/software/CMake 2.8/share/cmake-2.8/Modules/FindQt4.cmake:615 处的 CMake 警告(消息):C:/software/qt/5.0.1/mingw47_32/bin/qmake.exe 报告 QT_INSTALL_LIBS 为“ C:/software/qt/5.0.1/mingw47_32/lib" 但在那里找不到 QtCore。没有为目标构建环境正确安装 Qt。调用堆栈(最近调用优先):
cmake/OpenCVFindLibsGUI.cmake:8 (find_package) CMakeLists.txt:377 (include)
因此,正如人们可能从错误消息中所怀疑的那样,程序找不到库。我对此进行了如下补救。展开分类QT,找到值QT_QTCORE_LIBRARY_DEBUG,输入
“C:/software/qt/5.0.1/mingw47_32/bin/Qt5Cored.dll”在它下面你会找到QT_QTCORE_LIBRARY_RELEASE,输入“C:/software/qt/5.0.1/mingw47_32/bin/Qt5Core.dll " 现在,您可以在没有警告的情况下按配置(希望如此),然后您可以按生成,一切都会变得美好,您可以按照食谱教程进行操作。
顺便说一句,这些是我添加到系统变量中的附加路径变量。我不知道,也许其中一些是不必要的,但当一切终于正常时,我不打算开始惹他们。
C:\software\qt\Tools\MinGW\bin;
C:\software\Qt\Tools\MinGW;
C:\software\opencvMinGW\install\bin;
并且不要忘记您需要将 DLL 名称更改为 244 而不是 231,如下所示:
LIBS += -LC:\\software\\opencvMinGW\\install\\lib \
-lopencv_core244.dll \
-lopencv_highgui244.dll \
-lopencv_imgproc244.dll \
-lopencv_features2d244.dll \
-lopencv_calib3d244.dll
我真的希望这对某人有帮助!
编辑:上面的链接不再起作用。此链接可能会有所帮助(https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows)