参考:OpenCV:创建Mat矩阵的几种常用方法


本章介绍创建Mat的几种方式。

#include <opencv2/opencv.hpp>
using namespace cv;int main()
{//-----------//// Method 1: ////-----------//Mat m;// 1.1// function protoype// void Mat::create(int _rows, int _cols, int _type)m.create(240, 320, CV_8UC3);// or 1.2// function protoype// void Mat::create(Size _sz, int _type)m.create(Size(320, 240), CV_8UC3);//-----------//// Method 2: ////-----------//// 2.1 // function protoype// Mat(int _rows, int _cols, int _type, const Scalar& _s)Mat m(240, 320, CV_8UC3, Scalar(175, 175, 255)); // Commonly Used. In actual use, comment the other three items.// or 2.2// function protoype// Mat(Size _sz, int _type, const Scalar& _s)Mat m(Size(320, 240), CV_8UC3, Scalar(175, 175, 255));imshow("create",m);waitKey(0);return 0;
}

在上面的代码中,一种展示了四种创建Mat的方式。在实际的编译与运行中,任选其一并注释掉其他三项即可。

就我而言,比较喜欢用 2.1 方案。下面就这个方案进行介绍。下面的说明也可以很容易迁移到其他三种方案中,因此对其他三种方案不做赘述。

函数原型
Mat(int _rows, int _cols, int _type, const Scalar& _s)

  1. int _rows: 表示创建的Mat的行数(也就是图像的高)。
  2. int _cols: 表示创建的Mat的列数(也就是图像的宽)。
  3. int _type: 表示Mat的类型。
    类型的命名规则是这样的:
    CV_[The number of bits per item][Signed or Unsigned][Type Prefix]C[The channel number]
    For instance, CV_8UC3 means we use unsigned char types that are 8 bit long and each pixel has three of these to form the three channels. There are types predefined for up to four channels. The cv::Scalar is four element short vector. Specify it and you can initialize all matrix points with a custom value. If you need more you can create the type with the upper macro, setting the channel number in parenthesis as you can see below.
  4. Scalar& _s: 表示给各个通道赋值。
    比如 Scalar(175, 175, 255) 就表示三个通道依次赋值175,175,255.

【C++/CPP】OpenCV丨2. 常用操作丨1. 创建Mat丨相关推荐

  1. 【OpenCV】OpenCV实战从入门到精通之 -- 显示创建Mat对象的七种方法

    目录 1.使用Mat()构造函数 2.C\C++中构造函数进行初始化 3.为已经存在的IplImage指针创建信息头 4.利用Create()函数 5.Matlab方式的初始化 6.对小矩阵使用逗号分 ...

  2. Hbase常用操作记录

    Hbase常用操作记录 Hbase 创建表 查看表结构 修改表结构 删除表 创建表 语法:create <table>, {NAME => <family>, VERSI ...

  3. Kubernetes(k8s)常用资源的使用、Pod的常用操作

    1.K8s是如何运行容器的. 答:k8s是通过定义一个Pod的资源,然后在Pod里面运行容器的.K8s最小的资源单位Pod. 2.如何创建一个Pod资源呢? 答:在K8s中,所有的资源单位都可以使用一 ...

  4. 使用 Burpsuite 测试的常用操作(一)

    大家好啊,我是大田. 今天分享一下 Burpsuite 在工作中常用操作,本文先说说其中两个操作. 一.了解一下 Burpsuite 做什么 1.Burpsuite 是一个黑客工具.安全测试工具.半自 ...

  5. OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co

    OpenCV学习笔记(四十一)--再看基础数据结构core 记得我在OpenCV学习笔记(四)--新版本的数据结构core里面讲过新版本的数据结构了,可是我再看这部分的时候,我发现我当时实在是看得太马 ...

  6. opencv简单的矩阵操作

    OpenCV的基本矩阵操作与示例 OpenCV中的矩阵操作非常重要,本文总结了矩阵的创建.初始化以及基本矩阵操作,给出了示例代码,主要内容包括: 创建与初始化 矩阵加减法 矩阵乘法 矩阵转置 矩阵求逆 ...

  7. 顺序表的插入与删除java_C++实现顺序表的常用操作(插入删出查找输出)

    实现顺序表的插入,删除,查找,输出操作在C语言中经常用到.下面小编给大家整理实现代码,一起看下吧 代码如下所示: #include using namespace std; #define MAXSI ...

  8. opencv 简单、常用的图像处理函数(2)

    1.vc++配置opencv 2.简单常用的图片处理函数 3.图像修复函数 opencv的项目以来配置和环境变量的配置都很简单,对于我这个没有c++基础的来说,复杂的是opencv的api和一些大部分 ...

  9. STM32学习笔记(六)丨TIM定时器及其应用(输入捕获丨测量PWM波形的频率和占空比)

    本篇文章包含的内容 一.输入捕获 1.1 输入捕获简介 1.2 输入捕获通道的工作原理 1.3 输入捕获的主从触发模式 1.4 输入捕获和PWMI结构 二.频率的测量方法 2.1 测频法 2.2 测周 ...

最新文章

  1. SqlServer 索引
  2. 读写分离数据库之MyCat
  3. python︱flashtext高效关键词查找与替换
  4. 从Java类库看设计模式(4)
  5. 计算机机房安全管理问题与措施,机房管理中存在的问题及处理对策
  6. 历年系统架构师论文题目总结(2012-2018)
  7. 百度地图,根据地址计算经度纬度
  8. Electron 屏幕锁定 快捷键锁定 屏蔽快捷键
  9. spring MVC3 集成 freemarker
  10. 我的世界右边显示什么服务器,我的世界MC的服务器是什么意思
  11. 华为云CDN,无忧畅享网络
  12. 2020扁皮筋排名_2020年高性价比弹弓推荐,(12月)弹弓选购攻略
  13. python爬虫获取网站销售情况(内置源码)
  14. Cisco ❀ IPV4协议数据报头部
  15. 美联航客机逃生门故障致乘客机舱过夜 承诺将赔偿
  16. starUML建立模型及生成代码框架
  17. 【PyTorch深度学习项目实战100例】—— 基于CNN实现书法字体风格识别任务 | 第62例
  18. 机器学习—线性回归—正规方程(原理及代码实现)
  19. Ubuntu下tc命令配置网络时延、丢包、带宽
  20. 安卓:Day5 列表视图

热门文章

  1. ABAP 发布webservice调用外部webservice
  2. 聊一聊前端程序员的现状与挑战
  3. 判断日期是否合法(Java精练版)
  4. 微信小程序也许会用到上传视频,针对视频转码转为m3U8格式即web端可以使用的解决办法
  5. 餐饮app开发市场前景如何?行业竞争激烈吗?
  6. 解决 ajax 跨域
  7. 百度蜘蛛爬行日志分析
  8. 160多个android开源代码汇总
  9. 紫光服务器型号,紫光新华三全新HPE Gen10系列服务器响彻“云”端
  10. CVE-2012-4792 漏洞利用学习笔记