1. 编译opencv源代码
使用cmake将源代码构建到到另一个文件夹中(这里我将opencv3.2.0(源代码)使用VS2017选项构建到了build3.2.0文件夹中),如图一所示。
![](https://img.haomeiwen.com/i11929807/29e0b7da0c202c8d.png)
使用vs2017打开build3.2.0中的项目,对项目进行生成。
可能出现的问题:
1.cmake找不到MSBuild.exe,则在环境变量中添加MSBuild.exe的路径。
2.为了更方便的编译build3.2.0中的项目,在Cmake时可以勾上选项BUILD_opencv_world。
![](https://img.haomeiwen.com/i11929807/5bf9e219e397e298.png)
2.新建项目
创建如下项目文件夹。
![](https://img.haomeiwen.com/i11929807/21efec1fee13af22.png)
core为我们的项目的文件名称。
bin存放执行文件。
lib存放静态链接文件。
src存放源文件。
src中的文件夹结构如下图四所示。
![](https://img.haomeiwen.com/i11929807/af0db662199fc7b9.png)
使用vs2017在src下创建空的控制台项目,名为project1,得到以下图五文件夹结构。
![](https://img.haomeiwen.com/i11929807/6d5b4412853de475.png)
在main.cpp中添加如下代码。
#include<opencv2/core.hpp>
#include<opencv2/imgcodecs.hpp>
#include<opencv2/highgui.hpp>
using namespace cv;
int main(int argc, char *argv)
{
Mat img = imread("1.png");//读入图片
namedWindow("img"); //创建窗口,标识为img
imshow("img", img);//通过img窗口,展示图片
waitKey(0);//等待键盘相应,没有超时
return 0;
}
3.文件导入和项目配置。
1.添加头文件
opencv2/core.hpp
opencv2/imgcodecs.hpp
opencv2/highgui.hpp
三个文件需要从opencv3.2.0/modules(源文件)中找到对应的头文件存放到项目的include文件中。
例如下图中core.hpp的头文件。
![](https://img.haomeiwen.com/i11929807/15dd67b2a877cde5.png)
同时让项目去包含这个include文件夹。
如下图操作。
![](https://img.haomeiwen.com/i11929807/f6ce6d0ca08a8057.png)
将“附加包含目录”中添加上include文件夹,因为使用的是相对于项目(project1中含有.sln项目文件,故而以此为起点)的相对路径,故而使用“..”表示上一层文件夹。
2.添加静态链接文件
将build3.2.0中生成的lib文件添加到项目的lib文件中。
![](https://img.haomeiwen.com/i11929807/aea9d339bca404a0.png)
复制到项目的lib文件夹。
![](https://img.haomeiwen.com/i11929807/4c3929add64e483e.png)
在项目中包含这个lib文件夹,并附加上这个.lib文件。
![](https://img.haomeiwen.com/i11929807/2e920375f2a5ec9c.png)
![](https://img.haomeiwen.com/i11929807/04dbd21960c17d8f.png)
3.添加dll文件
将dll文件添加到dll文件夹中。
![](https://img.haomeiwen.com/i11929807/5404c7bc03550774.png)
将dll文件复制到项目文件夹的bin文件夹下。
![](https://img.haomeiwen.com/i11929807/6e30a5c03a67ca1b.png)
将项目的输出目录改为这个目录,项目就能识别到这个dll文件了。
![](https://img.haomeiwen.com/i11929807/d57fdadf475cffea.png)
4.添加图片文件
对于程序中使用的资源,如果使用的是相对路径,则会从工作目录开始查找,故而为了让程序能找到程序中使用的图片,需要修改工作目录。
![](https://img.haomeiwen.com/i11929807/2765b222a9716d84.png)
修改之后,我们在bin文件夹下添加图片即可。
4.代码运行
![](https://img.haomeiwen.com/i11929807/d5e8ac03fcc610a3.png)
5.出现的其他问题
使用的头文件可能还需要包含其他的头文件,可以通过相同的方法加入,不再赘述。
网友评论