Visual Studio配置OpenCV工程

原文链接:http://www.juzicode.com/opencv-note-vs-project-config

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

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注