Opencv2示例

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;
}


你可能感兴趣的:(opencv)