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