0 前言:一开始花了好长时间用VSCode配置OpenCV扩展库,一直报错,显示和anaconda有冲突,网上没有找到相关的解决办法(心累)…才开始用VS2019来配置,顺便记录了一下过程。
1. 安装环境
Win10 + Visual Studio 2019 + cmake3.22.1
2. 下载Visual Studio 2019(我下载的社区版)
https://visualstudio.microsoft.com/zh-hans/downloads/
勾选 使用C++的桌面开发
3. 下载cmake(注意是二进制版本)
https://cmake.org/download/
4. 下载opencv和opencv_contrib的zip(注意版本要一致),解压到本地目录
https://github.com/opencv/opencv/releases/tag/4.5.3
https://github.com/opencv/opencv_contrib/releases/tag/4.5.3
5. 配置,生成vs工程
在放opencv和opencv_contrib的文件夹下新建一个文件夹,如opencv4_build
打开cmake-gui,源码文件夹选择下载的opencv-4.5.3,构建目标文件夹选择新建的,如opencv4_build
点击configure,选择将源码编译成与VS版本相应的工程文件,再点击Finish
① 首先需要更改几个配置项:
找到配置项BUILD_opencv_world和OPENCV_ENABLE_NONFREE,打勾;然后在搜索栏输入extra,在OPENCV_EXTRA_MODULES_PATH配置项中选择opencv_contrib-4.5.3的modules路径
② 按照提示的路径找到CMakeDownloadLog.txt,打开查看缺失的文件,根据提供的链接手动下载,替换OpenCV4/opencv-4.5.3/.cache中相应的0k文件,再configure
我的缺了20+个…
这里下载的时候需要VPN,如果没有的话,可以从文末的镜像站链接下载(不过只有20M以内的可以下载)
6. 编译
在opencv4_build文件夹下找到OpenCV.sln,用VS2019打开,Debug,右键INSTALL生成
右击项目,如Project1,选择“属性”,将“配置”和“平台”分别改为“所有配置”和“所有平台”
选择VC++,在包含目录中添加…\opencv4_build\install\include
再添加…\opencv4_build\install\include\opencv2
选择库目录添加…\opencv4_build\install\x64\vc16\lib
再将“配置”改成“Debug”模式, 选择 链接器=>输入,在附加依赖性中加入opencv_world453d.lib
同理,配置“Release”模式,注意是opencv_world453.lib
最后添加环境变量,…\opencv4_build\install\x64\vc16\bin
8. 代码测试
#include
#include
using namespace std;
using namespace cv;
int main()
{
Mat image = imread("D:\\fyj\\1.png"); //图片路径
if (!image.empty())
{
imshow("test image", image);
waitKey();
}
else
{
printf("Empty image!");
}
return 0;
}
9. 配置过程中遇到的其他问题
① 出现这个报错,我没有管,看博客说可以搜索gensetupvars,去掉勾
② Debug配置生成报错
LNK1104 无法打开文件“python37_d.lib”
解决办法:修改Python的安装设置,将Debug版本安装进来。在“卸载或更改程序”中找到Python,右击更改,添加Debug版本
接着给VS OPENCV.sln 添加Python37_d.lib的路径
10. 主要参考资料
【VS2019+OpenCV4.5.1+OpenCV_contrib4.5.1安装+配置保姆式教程】
win10 +visual studio 2019 +opencv4.5.0+opencv_contrib4.5.0源码编译安装
【C++】LNK1104 无法打开文件“python37_d.lib” 解决方法
GitHub Proxy 代理加速 - 镜像站