OpenCV 图像对象的创建与赋值

一、Mat类知识点:
1、Mat无参构造对象
  (1)、Mat();
  (2)、调用无参构造,不为对象成员变量(数据指针data)分配内存。
  (3)、Mat的成员变量和成员函数都是public类型。
  (4)、测试代码:
     

      cv::Mat m1;
      if (m1.data == nullptr)
      {
          std::cout << "无参构造: m1.data == nullptr" << std::endl;
      }
      输出: 无参构造: m1.data == nullptr


2、Mat有参构造对象并初始化
  (1)、Mat(int rows, int cols, int type, const Scalar & s);
  (2)、调用有参构造,会为对象成员变量(数据指针data)分配内存,并初始化值。
  (3)、参数说明:
      rows: 行数,即高。
      cols: 列数,即宽。
      type: 矩阵类型,如:CV_8UC1、CV_8UC3、CV_32FC3等。
      s: 用于初始化每个像素的值。
  (4)、测试代码: 有参构造对象并初始化(3行4列,每个像素3个通道,每个通道8位无符号整数,每个像素初始化值BRG = (1, 2, 3))
      

      cv::Mat m2(3, 4, CV_8UC3, cv::Scalar(1, 2, 3));
      std::cout << m2 << std::endl;
      输出:
      [  1,   2,   3,   1,   2,   3,   1,   2,   3,   1,   2,   3;
         1,   2,   3,   1,   2,   3,   1,   2,   3,   1,   2,   3;
         1,   2,   3,   1,   2,   3,   1,   2,   3,   1,   2,   3]


    
3、zeros静态函数创建对象并初始化
  (1)、static UMat zeros(int rows, int cols, int type);
  (2)、返回一个指定大小和类型的零数组对象。
  (3)、参数说明:
      rows: 行数,即高。
      cols: 列数,即宽。
      type: 矩阵类型,如:CV_8UC1、CV_8UC3、CV_32FC3等。
  (4)、测试代码: zeros静态函数创建对象并初始化(3行4列,每个像素3个通道,每个通道8位无符号整数, 每个像素每个通道值为0)
      

      cv::Mat m3 = cv::Mat::zeros(3, 4, CV_8UC3);
      std::cout << m3 << std::endl;
      输出:
      [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0;
         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0;
         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0]


         
4、ones静态函数创建对象并初始化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小马兰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值