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;