使用VS2017和Qt编译OpenCV

作者:billy
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

前言

因为最近项目中用到了工业相机作业,涉及到图像处理无疑就要用到 OpenCV 了,用此章节来记录 OpenCV 从源码到编译,再到应用的过程。

开发环境:Qt 5.12.8, vs2017 Community
软件版本:opencv-4.2.0-vc14_vc15,cmake-3.17.1-win64-x64.msi

OpenCV下载地址:OpenCV官网
CMake下载地址:CMake官网

注意:OpenCV 4.0 现在是一个 C++11 库,要求 C++11 兼容的编译器。所需的 CMake 至少是 3.5.1 以上的版本

VS2017 编译 OpenCV

  1. 打开 cmake-gui 配置资源目录和输出目录
    使用VS2017和Qt编译OpenCV_第1张图片

  2. 配置vs编译器版本,博主使用的是vs2017,选择x64,不选会默认使用Win32
    使用VS2017和Qt编译OpenCV_第2张图片

  3. 勾选生成列表中的 WITH_OPENGL 和 WITH_QT 两项,其他项最好不要改动。出现红色区域继续点击 Configure,直到红色全部消失
    使用VS2017和Qt编译OpenCV_第3张图片

  4. 点击 Generate 生成 OpenCV 工程,成功后底下会提示 Generating done
    使用VS2017和Qt编译OpenCV_第4张图片

  5. 在 output 文件夹下找到工程 OpenCV.sln,并用VS打开
    使用VS2017和Qt编译OpenCV_第5张图片

  6. 这里需要注意的是VS默认的编译器设置是Win32,如果要生成64位的 OpenCV 库则需要调整为x64。可以在vs的安装目录 C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCWizards 下修改 default.vcxproj,DefaultTest.vcxproj、vcupgradedefault.vcxproj 三个文件,将其中的Win32替换为x64即可永久设置为x64。当然也可以手动设置为x64,但是手动设置仅仅是这一次有效,当新建一个项目打开就又是W32了;

  7. 选择 Debug x64,右键 ALL BUILD 选择 “生成” ,这里需要等待一段时间直到全部成功
    使用VS2017和Qt编译OpenCV_第6张图片

  8. 选择 Release x64,同样右键 ALL BUILD 选择 “生成”,等待一段时间直到全部成功

  9. 可以在 output 文件下查看生成的库文件。静态库在lib目录下,动态库在bin目录下
    使用VS2017和Qt编译OpenCV_第7张图片

  10. 到了这里还差最后一步,把库文件、头文件集中到一起,不需要我们手动拷贝,工程中提供了 “安装” 功能。我们回到 OpenCV 工程,右键 INSTALL 选择 “生成”,记得 Debug 和 Release 都来一遍哦,完成之后就大功告成了!路径为:output\install
    使用VS2017和Qt编译OpenCV_第8张图片

Qt 编译 OpenCV(比vs快好多好多,而且更方便!)

  1. 用Qt打开 opencv\sources\CMakeLists.txt

  2. 配置信息
    使用VS2017和Qt编译OpenCV_第9张图片

  3. Debug 和 Release 都跑一边就完成了,勾选 “install” 会直接帮我们把头文件、库文件整合在一起,是不是比VS要方便很多!
    使用VS2017和Qt编译OpenCV_第10张图片

  4. bug记录;
    bug:error C1041: 无法打开程序数据库“xxx\xxx.pdb”;如果要将多个 CL.EXE 写入同一个 .PDB 文件,请使用 /FS
    解决方案:工具 - 选项 - 构建和运行 - 概要 - 不勾选 “使用jom代替nmake”
    使用VS2017和Qt编译OpenCV_第11张图片

编译完成的 OpenCV 库

编译完成之后整理了一下目录结构,把结果做一下分享,有需求的小伙伴可以自行下载。
下载地址:OpenCV_msvc2017_64
提取码:mzbp

OpenCV的调用请参考下一章节 Qt调用 OpenCV 显示图片

你可能感兴趣的:(Qt,OpenCV,Qt,VS2017,OpenCV)