1 Mat对象与IplImage对象
 
- Mat对象OpenCV2.0之后引进的图像数据结构、自动分配内存、不存在内存泄漏的问题,是面向对象的数据结构。分了两个部分,头部与数据部分
- lpllmage是从2001年OpenCv发布之后就一直存在,是c语言风格的数据结构,需要开发者自己分配与管理内存,对大的程序使用它容易导致内存泄漏问题 (建议不要使用)
1-1 Mat对象构造函数与常用方法
 
| 构造函数 | 
|---|
| Mat::Mat() | 
| Mat::Mat(int rows, int cols, int type) | 
| Mat::Mat(Size size, int type) | 
| Mat::Mat(int rows, int cols, int type, const Scalar& s) | 
| Mat::Mat(Size size, int type, const Scalar& s) | 
 
| 常用方法 | 注释 | 
|---|
| void copyTo(Mat mat) | 拷贝Mat(拷贝头部和数据) | 
| void convertTo(Mat dst, int type) | 拷贝Mat并指定类型 | 
| Mat clone() | 拷贝Mat(拷贝头部和数据) | 
| int channels() | 查看Mat通道 | 
| int depth() | 查看Mat的深度 | 
| bool empty() | 判断Mat是否为空 | 
| uchar* ptr(i=0) | 获取Mat的指针i表示Mat的行 | 
 
2 Mat对象使用
 
2-1 定义Mat对象src
 
	Mat src;src = imread("1.png");if (src.empty()) {return -1;