学习OpenCV 02 Mat对象
Mat对象构造函数
- Mat()
- Mat(int rows,int cols,int type)
- Mat(Size size,int type)
- Mat(int rows,int cols,int type,const Scalar&s)
- Mat(Size size,int type,const Scalar&s)
- Mat(int ndims,const int*sizes,int type)
- Mat(int ndims,const int*sizes,int type,const Scalar&s)
Mat对象常用方法
- void copyTo(Mat mat)
- void convertTo(Mat dst,int type)
- Mat clone()
- int channels()
- int depth()
- bool empty()
- uchar* ptr(i=0)
Mat对象使用要点
- 输出图像的内存是自动分配的
- 复制操作和拷贝构造函数只会复制头部分
- 使用clone与copyTo两个函数实现数据完全复制
Mat对象创建
- cv::Mat::Mat构造函数Mat M(2,2,CV_8UC3,Scalar(0,0,255));其中前两个参数分别表示行row跟列column、第三个CV_8UC3中的8表示每个通道占8位、U表示无符号、C表示Char类型、3表示通道数目是3,第四个参数是向量表示初始化每个像素值是多少,向量长度对应通道数目一致。
- 定义小数组,参看掩膜运算Mat C=(Mat_<double>(3,3)<<0,-1,0,-1,5,-1,0,-1,0);
- cv::Mat::create实现
Mat m1; m1.create(src.size(), src.type()); m1 = Scalar(0, 0, 255); namedWindow("create", cv::WINDOW_AUTOSIZE); imshow("create", m1);