OpenCV
获取 OpenCV
从官网下载 openCV 。在本指南中,使用版本4.1.2。启动 opencv-3.2.0-vc14.exe 并让它解压到 d: 。现在文件夹 d:opencv _4.1.2_Sources已创建。
将 minGW 添加到 windows PATH 变量
打开控制面板, 系统和安全, 系统, 高级系统设置, 环境变量, 系统变量, 变量名称:路径 变量值:;E:QtToolsmingw810_32in
PS:64位的则添加
E:QtToolsmingw810_64in
编译 OpenCV
启动 cmake-gui.exe 然后选择以下设置:
源代码在哪里:D:/opencv_4.1.2_Sources/opencv-4.1.2 在哪里构建二进制文件:D:/opencv_4.1.2_Sources/opencv-4.1.2/build
然后点击Configure,让cmake创建build目录,选择如下设置:
为此项目指定生成器:MinGW Makefiles 指定本机编译器,下一步 编译器 C:E:QtToolsmingw810_32ingcc.exe 编译器 C++:E:QtToolsmingw810_32ing++.exe 结束
选中复选框 [X]WITH_QT
选中复选框 [X]WITH_OPENGL
将D:opencv_4.1.2_Sourcesopencv-4.1.2CMakeLists.txt打开添加如下代码,保存后退出
将 Qt5_DIR 设置为E:/Qt/5.15.1/mingw81_32/lib/cmake/Qt5
set(CMAKE_PREFIX_PATH "E:/Qt/5.15.1/mingw81_32/lib/cmake/Qt5")
PS:QT的版本看自己的安装情况而定
取消选中复选框 []ENABLE_PRECOMPILED_HEADERS
然后再次点击配置。
将 QT_MAKE_EXECUTABLE 设置为 D:Qt5.9mingw53_32inqmake.exe 将 Qt5Concurrent_DIR 设置为 D:Qt5.9mingw53_32libcmakeQt5Concurrent 将 Qt5Core_DIR 设置为 D:Qt5.9mingw53_32libcmakeQt5Core 将 Qt5Gui_DIR 设置为 D:Qt5.9mingw53_32libcmakeQt5Gui 将 Qt5Test_DIR 设置为 D:Qt5.9mingw53_32libcmakeQt5Test 将 Qt5Widgets_DIR 设置为 D:Qt5.9mingw53_32libcmakeQt5Widgets 将 Qt5OpenGL_DIR 设置为 D:Qt5.9mingw53_32libcmakeQt5OpenGL 将 CMAKE_BUILD_TYPE 设置为 Release
PS:此时生成的库为分散的,并不是一个dll,引入的时候不方便,可以勾选BUILD_opencv_world将动态库打包成一个
然后再次点击配置 然后点击生成
接下来打开cmd,输入以下命令。为了加快编译速度,-j 标志可用于同时运行多个编译作业。在 8 核 CPU 上,您可以将其设置为 8 或更高,以便使用所有内核。在具有 8GB 内存的 i7-3770@3.4GHz 核心上,编译大约需要 6 分钟。
d: cd d: cd opencv-build mingw32-make -j 8 mingw32-make install
如果在文件 opencv/sources/modules/videoio/src/cap_dshow.cpp 中出现以下错误:'sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA' 未在此范围内声明...
试试这个:把下面这行:#define NO_DSHOW_STRSAFE,在行之前:#include "DShow.h"
如果您有错误:'nullptr' 未在此范围内声明..
试试这个:在 cmake 中选中 ENABLE_CXX11 框
如果在文件 modulesvideoiosrccap_msmf.cpp 中出现错误: using invalid field '{anonymous}::ComPtr<T>::p'..
试试这个:在 cmake 中取消选中 WITH_MSMF