Opecv4.0 關於Mat初始化的疑惑

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);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章