美文网首页
opencv学习——第一个opencv程序

opencv学习——第一个opencv程序

作者: HZZW | 来源:发表于2020-04-10 22:33 被阅读0次

    1. 编译opencv源代码

    使用cmake将源代码构建到到另一个文件夹中(这里我将opencv3.2.0(源代码)使用VS2017选项构建到了build3.2.0文件夹中),如图一所示。

    图一

    使用vs2017打开build3.2.0中的项目,对项目进行生成。

    可能出现的问题:

    1.cmake找不到MSBuild.exe,则在环境变量中添加MSBuild.exe的路径。

    2.为了更方便的编译build3.2.0中的项目,在Cmake时可以勾上选项BUILD_opencv_world。

    图二

    2.新建项目

    创建如下项目文件夹。

    图三

    core为我们的项目的文件名称。

    bin存放执行文件。

    lib存放静态链接文件。

    src存放源文件。

    src中的文件夹结构如下图四所示。

    图四

    使用vs2017在src下创建空的控制台项目,名为project1,得到以下图五文件夹结构。

    图五

    在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的头文件。

    core文件夹和core.hpp都要复制到include文件夹中  

    同时让项目去包含这个include文件夹。

    如下图操作。

    图六

    将“附加包含目录”中添加上include文件夹,因为使用的是相对于项目(project1中含有.sln项目文件,故而以此为起点)的相对路径,故而使用“..”表示上一层文件夹。

    2.添加静态链接文件

    将build3.2.0中生成的lib文件添加到项目的lib文件中。

    复制到项目的lib文件夹。

    在项目中包含这个lib文件夹,并附加上这个.lib文件。

    添加lib文件夹 添加lib文件

    3.添加dll文件

    将dll文件添加到dll文件夹中。

    将dll文件复制到项目文件夹的bin文件夹下。

    将项目的输出目录改为这个目录,项目就能识别到这个dll文件了。

    4.添加图片文件

    对于程序中使用的资源,如果使用的是相对路径,则会从工作目录开始查找,故而为了让程序能找到程序中使用的图片,需要修改工作目录。

    修改之后,我们在bin文件夹下添加图片即可。

    4.代码运行

    5.出现的其他问题

    使用的头文件可能还需要包含其他的头文件,可以通过相同的方法加入,不再赘述。

    相关文章

      网友评论

          本文标题:opencv学习——第一个opencv程序

          本文链接:https://www.haomeiwen.com/subject/npdjmhtx.html