先说一下其实根本无需修改环境变量等系统设置,只需要对 project 进行一些设置就好。
编译需要的是 .h 文件和 .lib 文件,运行需要的是 .dll 文件,调试需要的是代码源文件和 .pdb 文件。
1. 准备 Open CV 的文件 :
解压到哪里无所谓,我们后面会把需要的文件复制到 Solution 的目录里面。
2. 在 vs 中新建一个空的工程,添加一个 source.cpp,随便加几行代码能跑起来。注意把 Solution Platform 修改为 x64,Debug 或者 Release 都可以。
在 project 的目录下新建两个文件夹“lib”和“include”,如下:(可以忽略那个 bin 文件夹)
3. 添加 lib 文件。
到解压出来的 opencv 文件夹下,opencv\build\x64\vc15\lib ,把这个目录下的两个 .lib 文件复制到上面新建的 lib 文件夹中。这两个 .lib 文件的区别,是Debug模式使用opencv_world410d.lib,Realease 模式使用opencv_world410.lib。那个 d 就是Debug 的意思,后面的 .dll 文件同理。
然后修改 project 的设置,使其能够链接这个 .lib 文件。打开 project 的属性页面,按照图里的设置,第一张图填的是 .lib文件的目录,我这里写的是相对路径,第二张图添加的是 .lib 文件名。注意我截图是Release模式,所以填的是opencv_world410.lib,Debug 模式要用opencv_world410d.lib。
4. 添加需要的头文件。
还是打开属性页面,按照如下设置:(意思搜索头文件的时候也会到这个目录下去找)
把opencv\build\include 下面的 opencv2 文件夹复制到之前新建的 include 文件夹下,
把 opencv\sources\include\opencv2\opencv.hpp 文件也复制到 include 文件夹下,最后效果如下
5. 这个时候就可以去写代码了,但是还不能运行。
我这里 source.cpp 的代码如下:
#include <cstdio> #include "opencv.hpp" //opencv 的头文件 using namespace std; using namespace cv; //opencv 的命名空间 int main() { printf("Hello Open CV!"); Mat img = imread("f22.jpg"); //这个图片需要自己准备,放在project目录下,或者直接写绝对路径 imshow("f22", img);//显示图片6秒 waitKey(6000); return 0; }
到此为止应该是可以build成功了,如果运行的话会提示少dll,这时候只要把对应的dll文件复制到编译出来的exe文件目录下即可。dll文件为"opencv\build\x64\vc15\bin\opencv_world410.dll"。debug 模式用那个带 d 的