图文解说OpenCV开发一 - 环境配置和入门程序详解


1 我用的是OpenCV 2.4.3版本,当前最新版本已经比这个新了;安装好的目录结构如下图;

OpenCV 2.4.3的安装包可以到我网盘下载;

http://pan.baidu.com/s/1kTIJlcV

图文解说OpenCV开发一 - 环境配置和入门程序详解_第1张图片


2 库在如下目录,vc10是用于VS2010;

下图那个压缩文件是我自己压的,不是OpenCV的;

图文解说OpenCV开发一 - 环境配置和入门程序详解_第2张图片


3 配置环境变量,我的已经配好,在命令行用 set path 命令显示出来让大家看下;要把 bin 目录加入;



4 为了让截图好看,下面先把VS的风格换一下;从工具菜单打开 扩展管理器;选择 联机库,输入 Visual Studio Color Theme Editor搜索;搜到Visual Studio Color Theme Editor后,下载;

图文解说OpenCV开发一 - 环境配置和入门程序详解_第3张图片


5 下载之后弹出如下窗口,进行安装;

图文解说OpenCV开发一 - 环境配置和入门程序详解_第4张图片


6 装完后重启VS,出现Theme菜单,从中选择一个好看的颜色;下面这个颜色看上去好多了;

图文解说OpenCV开发一 - 环境配置和入门程序详解_第5张图片


7 配置包含目录

打开项目属性页;VC++目录,包含目录,加入如下图的三项;include、opencv、opencv2;

图文解说OpenCV开发一 - 环境配置和入门程序详解_第6张图片


8 VS的颜色已经改了,为什么弹出的属性页窗口颜色还是原来的呢?

原来还要进一步定制选择;从Theme菜单弹出如下窗口;右边一堆,不知道是哪个管属性页窗口,下次再搞吧;

图文解说OpenCV开发一 - 环境配置和入门程序详解_第7张图片


9 配置库目录,如下图;加入vc10\lib;

图文解说OpenCV开发一 - 环境配置和入门程序详解_第8张图片


10 配置 附加依赖项;在属性页窗口中,选择 链接器 - 输入- 附加依赖项;

图文解说OpenCV开发一 - 环境配置和入门程序详解_第9张图片

    加入 x86\vc10\lib 下所有lib文件名字;

opencv_calib3d243d.lib;opencv_contrib243d.lib;opencv_core243d.lib;opencv_features2d243d.lib;opencv_flann243d.lib;opencv_gpu243d.lib;opencv_highgui243d.lib;opencv_imgproc243d.lib;opencv_legacy243d.lib;opencv_ml243d.lib;opencv_objdetect243d.lib;opencv_ts243d.lib;opencv_video243d.lib;


图文解说OpenCV开发一 - 环境配置和入门程序详解_第10张图片


11 编写第一个程序;

#include
#include
#include


using namespace cv;
using namespace std;


int main()
{
    Mat img = imread("奶兔2.jpg");
    if(img.empty())
    {
        cout<<"error";
        return -1;
    }
    imshow("奶兔2",img);
    waitKey();


    return 0;
}

    Run一下,结果如下图;把我的小奶兔图片显示出来了;

    注意到这个窗口是OpenCV自己生成的,还有一个命令行窗口;如果要做出完整的窗口的OpenCV程序,需要另外的编写代码;

图文解说OpenCV开发一 - 环境配置和入门程序详解_第11张图片


12 下面对程序做详细讲解;

首先是包含头文件;

然后是C++的命名空间;OpenCV的命名空间;


Mat类表示一个 n 维的密集数值单通道或多通道数组。它可以用于存储实数或复数值的向量和矩阵、灰度或彩色图像、体素、向量场、点云、张量、直方图 (尽管较高维的直方图存储在SparseMat可能更好)。


在OpenCV中,有一些函数可用于图像读取和保存,这些函数都在命名空间cv中,


从文件中读入一幅图像可以使用imread函数来读取图像,
Mat img=imread(filename);
该语句将filename所指定路径的指定文件读取到img数组中,该函数读取的是默认的三通道图像,读取的顺序默认情况下是BGR顺序,


imshow函数
在指定的窗口中显示一幅图像。
void imshow(const string& winname, InputArray mat);  
第一个参数,const string&类型的winname,填需要显示的窗口标识名称。
第二个参数,InputArray 类型的mat,填需要显示的图像。


waitKey();
是openCV自身的等待键按下函数。


项目工程下载:

http://pan.baidu.com/s/1qWkdfZm



你可能感兴趣的:(原创教程,VC++)