我已经找了好几天了,但我找不到最新版本的Qt和OpenCv的指南。我听说他们都很好,所以我想和他们一起做一个项目。我是Qt和OpenCv的初学者,你能一步一步告诉我吗?
我已经为此挣扎了很长一段时间,今天早上就开始工作了。我想我会通过发布我的发现来回报这个很棒的社区(因为它在很多场合都帮助了我)。享受
我花了很多时间试图让qt5和opencv 2.4.3发挥作用(事实上,他们在我开始工作之前发布了opencv 2.4.4,时间太长了。)
http://www.laganiere.name/opencvCookbook/chap1s1_2.shtml
我无法强调这个教程对我有多大帮助,我写这个指南是为了补充。大多数情况下,我会提供编译器和库的更新路径,并描述如何处理一路上遇到的错误。使用食谱教程获取图片和更多详细说明。
但正如我所暗示的,事情并不是无痛的,而是按照指示进行的,所以我想我会分享我为解决问题所做的一切,希望这能帮助到别人。
注意:我有一半的时间不完全确定自己在做什么,当有疑问时,我只是倾向于听从自己的直觉,所以如果有更多知识和经验的人发现了不准确的地方,请告诉我,我会纠正它。这就是我所做的,对我来说已经成功了,我现在正在使用C++在qt creator 5中构建openCV程序。
我使用了以下路径:
Qt:C:\software\Qt
OpenCV解压缩目录:c:\software\OpenCV-win-
OpenCV安装目录:c:\software\opencvMinGW
下载:
好的,所以对于初学者来说,下载最新的qt库和带有MinGW的创建者(在我的例子中是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),然后单击generate and create directory。在弹出窗口中,您选择";MinGW makefiles";以及";指定本机编译器";。在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.cmakeCMake错误:未设置内部CMake变量所需的错误,CMake可能不能正确构建。缺少的变量为:CMAKE_C_COMPILER_ENV_VAR CMAKE错误:找不到CMAKE模块文件:C:\software/opencvMinGWblah/CMakeFiles/2.8.10.2/CMakeCCompiler.cmake配置不完整,出现错误">
我怀疑这与make程序有关。啊。但是如何修复呢?
我通过检查";高级";按钮,找到条目CMAKE_MAKE_PROGRAM并指定路径";C:/software/qt/Tools/MinGW/bin/mingw32-make.exe";
结局好,一切都好。还是这样?
检查";分组的";按钮,打开WITH类别,选中";WITH_QT";。按配置。另一组错误:
C:/software/CMake上的CMake警告2.8/share/cmake-2.8/Modules/FindQt4.cmake:615(消息):C:/software/qt/5.0.1/ming47_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(包括)
因此,正如人们可能从错误消息中怀疑的那样,程序找不到库。我对此进行了如下补救。展开类别QT,找到值QT_QTCORE_LIBRARY_DEBUG,输入
"C:/software/qt/5.0.1/mingw47_32/bin/Qt5Cored.dll";就在它的下面,你会发现QT_QTCORE_LIBRARY_RESEREASE,输入";C:/software/qt/5.0.1/mingw47_32/bin/Qt5Core.dll";现在,您可以在没有警告的情况下按configure(希望如此),然后按Generate,一切都会很顺利,您可以按照食谱教程进行操作。
顺便说一句,这些是我添加到系统变量中的附加路径变量。我不知道,也许其中有几个是不必要的,但当一切最终奏效时,我不会开始打扰他们。
C:softwareqtToolsMinGWbin;
C:softwareQtToolsMinGW;
C:softwareopencvMinGWinstallbin;
不要忘记,您需要将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)