原文链接:http://www.juzicode.com/opencv-note-vs-project-config
这篇文章介绍如何使用已有的OpenCV库文件构建自定义的C++工程。需要事先在OpenCV官网下载了相应的lib和dll文件,或者通过cmake方法完成了编译和构建。
1、新建工程
新建一个Visual C++ 项目,选择Win32-Win32控制台应用程序,输入工程名称、路径:

在应用程序设置中选择控制台应用程序,附加选项选择空项目:

2、添加源文件
根据OpenCV库文件的bit版本,这里选择x64:

右键点击源文件新建或添加cpp文件:

3、修改项目属性
在修改项目属性前,先要准备好库文件,可以从opencv官网或github下载预编译好的二进制包安装或者自己编译二进制包,编译方法见:CMake构建、编译OpenCV工程(http://www.juzicode.com/opencv-note-cmake-project-vs-windows)。以自己用VS2015编译x64版本为例,在CMake build设置路径的install文件夹下的目录结构是这样的:

其中include为头文件目录,x64\vc14\lib为编译用的lib文件目录,x64\vc14\bin为dll文件目录。
在项目属性–VC++目录–包含目录中输入头文件所在目录,桔子菌电脑的完整头文件目录为:E:\juzicode\opencv-4.5.3-build-x64\install\include和E:\juzicode\opencv-4.5.3-build-x64\install\include\opencv2,需要注意的是这2个路径都要包含进来,不能只使用其中一个路径:

在项目属性–VC++目录–库目录中输入lib文件所在目录,桔子菌电脑的的64位版本的lib文件目录为:E:\juzicode\opencv-4.5.3-build-x64\install\x64\vc14\lib:

在配置属性–链接器–输入–附加依赖项中输入lib文件清单:

因为lib文件较多,一个一个文件输入比较麻烦,如果你的环境安装了Python,也可以进入到lib文件所在目录,在命令行界面输入:python -c “import os;[print(t) for t in os.listdir() if t.endswith(‘.lib’)]”,将打印出来的lib文件清单复制到前面的附加依赖项:
> python -c "import os;[print(t) for t in os.listdir() if t.endswith('.lib')]"
opencv_calib3d453.lib
opencv_core453.lib
opencv_dnn453.lib
opencv_features2d453.lib
opencv_flann453.lib
opencv_gapi453.lib
opencv_highgui453.lib
opencv_imgcodecs453.lib
opencv_imgproc453.lib
opencv_ml453.lib
opencv_objdetect453.lib
opencv_photo453.lib
opencv_stitching453.lib
opencv_video453.lib
opencv_videoio453.lib
4、配置环境变量
前面的过程是配置编译时环境,接下来配置OpenCV的运行时环境,在系统的环境变量中增加dll文件所在路径到Path变量中:

5、验证配置
回到第2步添加的cpp文件,输入如下代码:
//juzicode.com/VX:桔子code
#include <iostream>
#include "opencv.hpp"
using namespace std;
using namespace cv;
int main(void)
{
cout << "juzicode.com/VX:桔子code" << endl;
cout << "opencv test" << endl;
cout << "opencv version:" << CV_VERSION << endl;
Mat img = imread("lena.jpg");
imshow("img",img);
waitKey();
return 0;
}
然后编译生成一个和工程名一样的exe文件,在该exe同目录下拷贝一个lena.jpg文件过来,双击exe文件:

能正常打印OpenCV的版本并显示图片,说明配置正确完成!
扩展阅读:
1、CMake构建、编译OpenCV工程 http://www.juzicode.com/opencv-note-cmake-project-vs-windows