由于opencv有很多版本,它其中的目录结构改动不少,我们这把使用v4.54版本的来使用

先上官网下载源码

opencv 编译配置openvino opencv编译安装_github


https:///opencv/opencv/archive/refs/tags/4.5.4.zip这是直接下载方式

然后下载opencv_contrib
https:///opencv/opencv_contrib/archive/refs/tags/4.5.4.zip

要求版本一致,不容易有bug或一些莫名其妙的错误

然后下载cmake

https://cmake.org/download/ 我这里使用的是3.22.3版本的,大家自行下载,最好不要是最新的(可能有bug)

然后下载完成后都解压,最好是放在d盘,道理大家都懂,c盘是系统核心盘,东西少点好

打开cmake

opencv 编译配置openvino opencv编译安装_opencv_02


打开后第一个文本框选择opencv目录

第二个框需要自定义一个空文件夹,我这里为costomBuild

opencv 编译配置openvino opencv编译安装_opencv_03


这样就可以,然后点击configure

opencv 编译配置openvino opencv编译安装_opencv 编译配置openvino_04


选择自己的vs版本和构建平台,我这里的vs2017,选择x64

opencv 编译配置openvino opencv编译安装_opencv_05


点击finish开始配置等到显示 configure done

opencv 编译配置openvino opencv编译安装_#include_06


找到这个选项,打钩(编译完成后会放在一个lib,导库的时候只需要输入一个文件名就可以,操作方便)

opencv 编译配置openvino opencv编译安装_#include_07


然后是这个选项

opencv 编译配置openvino opencv编译安装_opencv 编译配置openvino_08


把我们刚刚下载的opencv_contrib目录下的moudle添加进来

opencv 编译配置openvino opencv编译安装_c++_09


再次点击configure完成后点击generate

opencv 编译配置openvino opencv编译安装_opencv_10


等待都完成后,去编译的目录找到openCV.sln,或者点击open project也可以然后点击解决方案资源管理器并找到install

opencv 编译配置openvino opencv编译安装_c++_11


右击生成

opencv 编译配置openvino opencv编译安装_opencv 编译配置openvino_12


等待完成后,新建一个空项目

opencv 编译配置openvino opencv编译安装_#include_13

打开属性管理器,找到debug,x64,展开,找到mirosoft.cpp.x64.user,右击打开属性

opencv 编译配置openvino opencv编译安装_c++_14

注意我们要使用debug的x64位,需要修改的有以下两项(包含目录和包含库)

opencv 编译配置openvino opencv编译安装_opencv 编译配置openvino_15


包含目录添加这几项

opencv 编译配置openvino opencv编译安装_c++_16


包含库添加项

opencv 编译配置openvino opencv编译安装_github_17


然后需要修改链接器下的依赖项

opencv 编译配置openvino opencv编译安装_github_18


将刚刚编译过的D:\opencv\customBuild\install\x64\vc15\lib目录下的lib文件都添加进去,应该只有world的两个lib,都添加就可以

如果有别的话,也都添加,只添加 .lib结尾的文件,其他不用管

测试代码:

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;

int main(int argc, char** argv) {
	Mat m = imread("C:/Users/h2082/Desktop/n/image/objectGrass.png");
	namedWindow("sample");
	imshow("sample", m);
	waitKey(0);
	return 0;

}

记得把文件目录换成自己本机的文件目录哦,而且要用 / 分割
如果可以通过的话,代表大家配置成功了