Opencv1.0版本于2006年面世,主要基于C语言。2009年发布opencv2,主要基于C++。此时opencv库被划分成多个模块:
Opencv_core模块:包含核心功能,尤其是底层数据结构和算法函数。
Opencv_improc模块:包含图像处理函数。
Opencv_highgui模块:包含读写图像及视频的函数,以及操作图形用户界面函数。
Opencv_features2d模块:包含兴趣点检测子,描述子以及兴趣点匹配框架。
Opencv_calib3d模块:包含相机标定,双目几何估计以及立体视觉函数。
Opencv_video模块:包含运动估算,特征跟踪以及前景提取函数与类。
Opencv_objdetect模块:包括物体检测函数,如脸部和行人检测。
库中还包含其它的工具模块,如机器学习(opencv_ml),计算几何(opencv_flann),第三方代码(opencv_contrib)等。这些模块都对有一个单独的头文件(位于include文件夹)。推荐的声明方式如下:
#include<opencv2\core\core.hpp>
#include<opencv2\highgui\highgui.hpp>
#include<opencv2\imgproc\imgproc.hpp>
而#include "cv.h"是旧的代码方式
………………………………………………………………
读取、显示和保存图片
#include "stdafx.h" #include "opencv2/core/core.hpp" #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" #include <iostream> using namespace std; using namespace cv; int _tmain(int argc, _TCHAR* argv[]) { Mat image=imread("D:\\document_x64\\documents\\visual studio 2012\\Projects\\ConsoleApplication1\\Debug\\lena.jpg",1);//读取图片 if(!image.data)// data指向已分配内存块的指针 { cout<<"fail to load image"<<endl; } cout <<"image size: "<<image.size().height<<","<<image.size().width<<endl;//size()返回的是一个结构体 namedWindow("show"); imshow("show",image);// 显示图片 imwrite("D:\\document_x64\\documents\\visual studio 2012\\Projects\\ConsoleApplication1\\Debug\\lena2.jpg",image); Mat result; flip(image,result,0); namedWindow("result",0); imshow("result",result); waitKey(0); return 0; }