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;