作者: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
-
打开 cmake-gui 配置资源目录和输出目录;
-
配置vs编译器版本,博主使用的是vs2017,选择x64,不选会默认使用Win32;
-
勾选生成列表中的 WITH_OPENGL 和 WITH_QT 两项,其他项最好不要改动。出现红色区域继续点击 Configure,直到红色全部消失;
-
点击 Generate 生成 OpenCV 工程,成功后底下会提示 Generating done;
-
在 output 文件夹下找到工程 OpenCV.sln,并用VS打开;
-
这里需要注意的是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了;
-
选择 Debug x64,右键 ALL BUILD 选择 “生成” ,这里需要等待一段时间直到全部成功;
-
选择 Release x64,同样右键 ALL BUILD 选择 “生成”,等待一段时间直到全部成功;
-
可以在 output 文件下查看生成的库文件。静态库在lib目录下,动态库在bin目录下;
-
到了这里还差最后一步,把库文件、头文件集中到一起,不需要我们手动拷贝,工程中提供了 “安装” 功能。我们回到 OpenCV 工程,右键 INSTALL 选择 “生成”,记得 Debug 和 Release 都来一遍哦,完成之后就大功告成了!路径为:output\install;
Qt 编译 OpenCV(比vs快好多好多,而且更方便!)
-
用Qt打开 opencv\sources\CMakeLists.txt
-
配置信息;
-
Debug 和 Release 都跑一边就完成了,勾选 “install” 会直接帮我们把头文件、库文件整合在一起,是不是比VS要方便很多!
-
bug记录;
bug:error C1041: 无法打开程序数据库“xxx\xxx.pdb”;如果要将多个 CL.EXE 写入同一个 .PDB 文件,请使用 /FS;
解决方案:工具 - 选项 - 构建和运行 - 概要 - 不勾选 “使用jom代替nmake”;
编译完成的 OpenCV 库
编译完成之后整理了一下目录结构,把结果做一下分享,有需求的小伙伴可以自行下载。
下载地址:OpenCV_msvc2017_64
提取码:mzbp