1,Mat类部分初始化函数
2,Mat(int rows,int cols, int type, const Scalar& s),行在前,即h在前,列在后,即w在后
Mat(Size size, int type, const Scalar& s)
rows ------>h
cols ------>w
Size(w,h)
所以上述两种初始化方法,要注意行,列的位置
3, Mat image = imread("images\\1.png", 0);
Mat image1(image) ;//仅是创建了Mat的头部分,image1与image共享数据区
Mat image1 = image ;//仅是创建了Mat的头部分,image1与image共享数据区
Mat image1 = image.clone() ;//完全拷贝,把image中的所有信息拷贝到image1中
Mat image1;
image.copyTo(image1);//拷贝image的数据区到image1中,在拷贝数据前会有一步:image1.create(this->size , this->type)
4, Mat mz = Mat::zeros(Size(w,h),CV_8UC1); // 全零矩阵
Mat tmpdata = Mat::zeros(h, w, CV_8UC1);//h行w列的全0矩阵
Mat mo = Mat::ones(cv::Size(w,h),CV_8UC1); // 全1矩阵
Mat tmpdata = Mat::ones(h, w, CV_8UC1);//h行w列的全1矩阵
Mat me = Mat::eye(cv::Size(w,h),CV_32FC1); // 对角线为1的对角矩阵
Mat tmpdata = Mat::eye(h, w, CV_32FC1);//h行w列的对角矩阵
5,对于维数较小的Mat类型,直接定义赋值方法如下:
Mat mtest = (Mat_<float>(4, 1) << -0.055818, -0.734866, -0.675912, 0.506045);