使用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 配置资源目录和输出目录
    在这里插入图片描述

  2. 配置vs编译器版本,博主使用的是vs2017,选择x64,不选会默认使用Win32
    在这里插入图片描述

  3. 勾选生成列表中的 WITH_OPENGL 和 WITH_QT 两项,其他项最好不要改动。出现红色区域继续点击 Configure,直到红色全部消失
    在这里插入图片描述

  4. 点击 Generate 生成 OpenCV 工程,成功后底下会提示 Generating done
    在这里插入图片描述

  5. 在 output 文件夹下找到工程 OpenCV.sln,并用VS打开
    在这里插入图片描述

  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 选择 “生成” ,这里需要等待一段时间直到全部成功
    在这里插入图片描述

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

  9. 可以在 output 文件下查看生成的库文件。静态库在lib目录下,动态库在bin目录下
    在这里插入图片描述

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

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

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

  2. 配置信息
    在这里插入图片描述

  3. Debug 和 Release 都跑一边就完成了,勾选 “install” 会直接帮我们把头文件、库文件整合在一起,是不是比VS要方便很多!
    在这里插入图片描述

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

编译完成的 OpenCV 库

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章