[Learning OpenCV入门 1]OpenCV模块以及基本操作

来源:互联网 发布:windows切换到mac 编辑:程序博客网 时间:2024/05/29 15:38

 OpenCV的安装配置以及其它预备介绍

OpenCV安装配置

暂且使用了VS2013+OpenCV3.0版本。
至于下载就忽略不计。

Pre介绍:

[PATH可以理解为计算机寻找某文件时的路径]

包含目录:告诉VC去什么地方寻找(OpenCV)的头文件.h文件

库目录:告诉VC去什么地方寻找OpenCV的库文件.lib文件,是动态库

第一步 配置环境变量(PATH):

计算机→属性→高级系统设置→高级→环境变量→PATH→变量中添加相应的路径(.bin的路径)

第二步 包含文件目录的配置:

文件→新建→项目→win32→空项目→cpp→....→VC++(包含目录)

然后加上opencv的include,opencv,opencv2三个路径

第三步 lib目录的配置:

也是在VC++目录中选择库目录加上相应的lib

其他相关介绍

命名空间

OpenCV中的C++类和函数都是定义在命名空间cv之内的,有两种方法可以访问。第一种是,在代码开头的适当位置,加上usingnamespace cv;这句。
另外一种是在使用OpenCV类和函数时,都加入cv::命名空间。不过这种情况难免会不爽,每用一个OpenCV的类或者函数,都要多敲四下键盘写出cv::,很麻烦。


 OpenCV模块概览

OpenCV库自2.2版本起就被划分成多个模块,在进行开发之前,需要将这些模块编译成库文件,然后在lib文件夹中找到这些模块: 
opencv_core模块:其中包含OpenCV基本数据结构、动态数据结构、绘图与数组操作的相关函数、辅助功能与系统函数、基本的算法函数等核心功能。 
opencv_improc模块:包含图像处理函数,主要包含图像滤波、图像的几何变换、直方图、特征检测、目标跟踪等内容。 
opencv_highgui模块:高层GUI图形用户界面,包含媒体的I/O输入输出函数,读写图像及视频的函数,以及操作图形用户界面函数。 
opencv_features2d模块:即2D功能框架,包含兴趣点检测子,描述子以及兴趣点匹配框架。 
opencv_calib3d模块:Calibration(校准)加3D这两个词的组合缩写。这个模块主要是相机校准和三维重建相关的内容,包含相机标定,双目几何估计,物体姿态估计以及立体视觉等函数。 
opencv_video模块:包含运动估算,特征跟踪以及前景提取函数与相关的类。 
opencv_objdetect模块:主要由级联分类(Cascade Classification)和Latent SVM这两个部分。其中包括物体检测函数,如脸部和行人检测。 
opencv_stitching模块:OpenCV2.4.0新增的模块,其主要功能是实现图像拼接。 
lopencv_superres模块:即SuperResolution,利用多种算法实现超分辨率技术的相关功能模块。 
opencv_ml模块:Machine Learning模块,主要包括统计模型 (Statistical Models)、一般贝叶斯分类器 (Normal Bayes Classifier)、K-近邻 (K-NearestNeighbors)、支持向量机 (Support Vector Machines)、决策树 (Decision Trees)、提升(Boosting)、梯度提高树(Gradient Boosted Trees)、随机树 (Random Trees)、超随机树 (Extremely randomized trees)、期望最大化 (Expectation Maximization)、神经网络 (Neural Networks)等内容。 
opencv_flann模块:高维的近似近邻快速搜索算法库, 主要由两个部分组成:快速近似最近邻搜索和聚类。 
opencv_contrib模块:第三方代码,包括一些新添加的不太稳定的可选功能,如新型的人脸识别、立体匹配、人工视网膜模型等技术。 
opencv_nonfree模块:包含一些拥有专利的算法,如SIFT、SURF函数源码。 
这些模块都对有一个单独的头文件(位于include文件夹)。#include<opencv2/opencv.hpp>


OpenCV简单读入输出

1.读入图片:

1,定义Mat类型的变量

2,使用imread进行赋值

example:Mat myimage=imread("1.jpg");

2.读入视频:

两种方法 一种为先实例化然后初始化  第二种为实例化的同时初始化

1,先实例化然后初始化

VideoCapture capture;

capture.open("1.avi");//调用open成员函数

2,实例化的同时初始化

VideoCapture capture(“”1.avi“”);//调用构造函数实例化

显示每一帧

while (1)
{
Mat frame;
capture >> frame;//读取当前帧
imshow("读取视频", frame);
waitKey(30);

}




0 0
原创粉丝点击