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

本文是OpenCV学习笔记的第二部分,详细介绍了如何配置C++工程以使用OpenCV库,包括库和头文件的添加,以及在VS2015中设置库路径。接着讲解了OpenCV中imread、namedWindow、imshow和waitKey四个关键函数的用法,用于图像的读取、窗口创建、显示和用户交互。最后提供了一个简单的代码实例,演示了从文件加载图像并在窗口中显示的过程。
摘要由CSDN通过智能技术生成

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学习笔记(三) – 图像压缩与保存

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值