Opencv学习笔记(二) -- 第一个Opencv工程-图像载入与显示

1.工程配置

1.1库说明

Opencv库的编译工作参考:Opencv学习笔记(一) – 利用VS2015和CMake3.11.2,进行Opencv3.4.1源码的编译工作

1.2工程配置说明

如果要在工程中使用Opencv库,需要进行以下操作:
1.包含头文件目录,库目录主要有以下两个:
include\opencv
include\opencv2
2.包含库目录:
lib
注:该目录中要包含opencv_world340d.lib及opencv_world340.lib
3.在工程源代码中添加以下语句:

#include "cv.h"
#include "opencv2\opencv.hpp"
using namespace cv;

#if _DEBUG
#pragma comment(lib,"opencv_world340d.lib")
#else
#pragma comment(lib,"opencv_world340.lib")
#endif

4.在生成的程序目录中放入相关DLL文件:
Debug程序用到的文件:opencv_world340d.dll、opencv_ffmpeg340.dll
Release程序用到的文件:opencv_world340.dll、opencv_ffmpeg340.dll

2.涉及函数

2.1 imread

  • 函数功能
    读取指定图像文件中的数据
  • 函数原型
CV_EXPORTS_W Mat imread( const String& filename, int flags = IMREAD_COLOR );
  • 函数参数
    const String& filename – 图片所在路径
    int flags = IMREAD_COLOR – 加载方式,默认按彩色图像加载
  • 返回值
    Mat – 图像数据矩阵
    注意:
    1.无论图像文件是否存在,该函数都会返回一个图像矩阵。所以为了保证后续操作不发生异常,我们需要对返回的矩阵进行有效性检查;
    2.判断方法:当图像加载失败时,返回的Mat对象的data成员指针为NULL。

2.2 namedWindow

  • 函数功能
    创建指定名称的窗体
  • 函数原型
CV_EXPORTS_W void namedWindow(const String& winname, int flags = WINDOW_AUTOSIZE);
  • 函数参数
    const String& winname – 窗体名称
    int flags = WINDOW_AUTOSIZE – 窗体样式,默认为自动适应图像大小的窗体,用户不能手动改变窗体大小
  • 返回值

2.3 imshow

  • 函数功能
    在指定窗体上显示图像
  • 函数原型
CV_EXPORTS_W void imshow(const String& winname, InputArray mat);
  • 函数参数
    const String& winname – 窗体名称
    InputArray mat – 要显示的图像矩阵
  • 返回值

2.4 waitKey

  • 函数功能
    让窗体在在一个设定时间内等待用户按键触发;如果用户没有按下 键,则接续等待。时间等待单位为毫秒。
  • 函数原型
CV_EXPORTS_W int waitKey(int delay = 0);
  • 函数参数
    int delay = 0 – 等待时间。默认为0,表示一致等待。
  • 返回值

3.代码实例

  • 代码说明
    本例主要展示如何进行图片加载和图片显示操作。
  • 测试平台
    1.开发语言:C++
    2.开发工具:VS2015
    3.操作系统:Win7 X64
  • 具体代码
#include <iostream>
using namespace std;

#include "cv.h"
#include "opencv2\opencv.hpp"
using namespace cv;

#if _DEBUG
#pragma comment(lib,"opencv_world340d.lib")
#else
#pragma comment(lib,"opencv_world340.lib")
#endif

int main()
{
    Mat src = imread("D:\\OpencvTest\\lena.jpg");

    if (src.data != NULL)
    {
        namedWindow("lena");
        imshow("lena", src);
    }
    else
    {
        cout << "图片加载失败,请检查文件是否存在!" << endl;
    }

    waitKey(0);
    getchar();
    return 0;
}
  • 输出结果
    这里写图片描述

栏目导航
上一篇:Opencv学习笔记(一) – 利用VS2015和CMake3.11.2,进行Opencv3.4.1源码的编译工作
下一篇:Opencv学习笔记(三) – 图像压缩与保存

猜你喜欢

转载自blog.csdn.net/u014337397/article/details/80728040