Linux36:Mat结构体
目录1.Mat介绍2.Mat的深度和字节类型1.灰度图2.二值图像3.三通道图像4.四通道图像2.1.单通道分类2.2.双通道分类2.3.三通道分类2.4.四通道分类3.Mat的创建和构造方法3.1.Mat(int rows, int cols, int type);3.2.Mat(Size size, int type);3.3.Mat(int rows, int cols, int type, const Scalar s);3.4.Mat::zeros(rows,cols,type);3.5.Mat::ones(rows,cols,type);4.代码实现OPENCV创建Mat1.Mat介绍在OPENCV中Mat是整个图像存储的核心也是所有图像处理的最基础的类。Mat主要存储图像的矩阵类型包括向量、矩阵、灰度或者彩色图像等等。Mat的对象可以分成矩阵头和矩阵数据两个大部分矩阵头是存储图像的长度、宽度、色彩信息等头部信息矩阵数据则是存储具体的图像数据。若开发者想对OPENCV的Mat中的信息进行修改则是改变像素信息的数据部分。Mat的输出一般包含图像的宽度、高度、通道数量、通道深度、字节类2.Mat的深度和字节类型unsigned signed floatCV_16F含义16位浮点数范围半精度浮点数用途在OpenCV的较新版本尤其是在OpenCV 4.x及以后的DNN模块中为了支持AI加速如GPU上的FP16计算和减少内存占用而引入的重要类型。上面是Opencv的字节类型和通道数的定义在OPENCV中通常分为四个通道和8种数据类型。分别是单通道(灰度图)、双通道(二值图像)、三通道(RGB彩色图像)、四通道(带Alpha的四通道图像)。1.灰度图灰度图又称之为灰阶图颜色介于白色和黑色之间按对数关系分为若干等级这种图像称之为灰度。灰度分为256个阶2.二值图像二值图像中的图像中每一个像素只有两个值分别是0和1其中0表示黑色、1表示白色3.三通道图像三通道(RGB)图像也就是我们所说的RGB图像所以三通道图像可以用来彩色图像。4.四通道图像四通道(ARGB)也就是在彩色图像中2.1.单通道分类CV_8UC1:指的是一个8位无符号整型单通道矩阵CVCV 32SC1:指的是一个32位整型单通道矩阵CV_32FC1:指的是一个32位浮点型单通道矩阵CV_64FC1:指的是一个64位浮点型单通道矩阵CV_16SC1:指的是一个16位整型单通道矩阵2.2.双通道分类CV_8UC2:指的是一个8位无符号整型双通道矩阵CV_32SC2:指的是一个32位整型双通道矩阵CV_32FC2:指的是一个32位浮点型双通道矩阵CV_64FC2:指的是一个64位浮点型双通道矩阵CV_16SC2:指的是一个16位整型双通道矩阵2.3.三通道分类CV8UC3:指的是一个8位无符号整型三通道矩阵CV32SC3:指的是一个32位整型三通道矩阵CV_32FC3:指的是一个32位浮点型三通道矩阵CV_64FC3:指的是一个64位浮点型三通道矩阵CV16SC3:指的是一个16位整型三通道矩阵2.4.四通道分类CV_8UC4:指的是一个8位无符号整型四通道矩阵CV_32SC4:指的是一个32位整型四通道矩阵CV_32FC4:指的是一个32位浮点型四通道矩阵CVCV_64FC4:指的是一个64位浮点型四通道矩阵CV_16SC4:指的是一个16位整型四通道矩阵3.Mat的创建和构造方法Mat的创建一般分为五种方式分别是Mat(int rows, int cols, int type)、Mat(Size size, int type)、Mat::zeros(Size(width,height),type)下面我将把三种构造的方式都详细说一遍。3.1.Mat(int rows, int cols, int type);重载的构造函数这个构造函数在创建的时候提供矩阵的大小分别是rows、cols以及存储类型typerows行数也指的是图像的高度height。cols列数也指的是图像的宽度width。type通道类型具体的看上面的图示例Mat t1 Mat(300,300,CV_8UC1)这指的是创建一个width:300,height:300,单通道的灰度图像.3.2.Mat(Size size, int type);重载的构造函数这个构造函数在创建的时候需要传入Size类和类型。第一个传参Size结构体Size(width,height)第二个传参type通道类型具体的看上面的图示例Mat t2 Mat(Size(300,300),CV_8SC3)这指的是创建一个width:300,height:300,三通道的灰度图像3.3.Mat(int rows, int cols, int type, const Scalar s);重载的构造函数这个构造函数在创建的时候提供矩阵的大小分别是rows、cols、存储类型type、还有Scalar颜色标量。第一个传参rows行数也指的是图像的高度height。第二个传参cols列数也指的是图像的宽度width。第三个传参type通道类型具体的看上面的图第四个传参Scalar颜色标量Scalar(v0,v1,v2,v3)v0,v1,v2,v3分别对应OPENCV颜色分量的四个值示例Mat mat Mat(300,300,CV_8UC3,Scalar(255,255,255));表示的是创建一个cols:300,rows:300,三通道的灰度,颜色标量为白色的图像3.4.Mat::zeros(rows,cols,type);重载的构造函数这个构造函数在创建的时候提供矩阵的大小分别是rows、cols以及存储类型type。ZROS相当于创建一张黑色的图片每个像素通道为0并且Scalar(0,0,0)。第一个传参rows行数也指的是图像的高度height。第二个传参cols列数也指的是图像的宽度width。第三个传参type通道类型具体的看上面的图示例 Mat::zeros(300,300,CV_8SC3);这指的是创建一个width:300,height:300,三通道的彩色图像,Scalar(0,0,0)相当于 Mat mat Mat(300,300,CV_8SC3,Scalar(0,0,0));3.5.Mat::ones(rows,cols,type);重载的构造函数这个构造函数在创建的时候提供矩阵的大小分别是rows、cols以及存储类型type。ONES相当于每个像素第一个通道为1后面两个通道为0。第一个传参rows行数也指的是图像的高度height。第二个传参cols列数也指的是图像的宽度width。第三个传参type通道类型具体的看上面的图示例 Mat::ones(300,300,CV_8SC3)这指的是创建一个width:300,height:300, 三通道的彩色图像,Scalar(1,0,0)这等同于Mat mat Mat(300,300,CV_8SC3,Scalar(1,0,0));4.代码实现OPENCV创建Mat4.1. 实现Mat构造并保存到本地这指的是创建一个width:300,height:300,三通道的灰度图像, 粉色的图像4.2. 利用Mat(Size size, int type)构造生成矩阵数据并保存到本地这指的是创建一个width:256,height:256,三通道的图像。然后再用t1 Scalar(255,0,0);把矩阵变成蓝色最后把矩阵保存到本地4.3. 利用Mat::zeros(rows,cols,type)构造生成矩阵数据并保存到本地利用zeros去创建矩阵ZROS相当于创建一张黑色的图片每个像素通道为0并且Scalar(0,0,0)。然后把图片保存到本地4.4. 利用Mat::ones(rows,cols,type)构造生成矩阵数据并保存到本地利用ones去创建矩阵ONES相当于每个像素第一个通道为1后面两个通道为0相当于Scalar(1,0,0))然后把图片保存到本地

相关新闻

MATLAB环境下稀疏最大谐波噪声比解卷积算法在机械振动信号处理中的应用与拓展:两个实例及跨领...

MATLAB环境下稀疏最大谐波噪声比解卷积算法在机械振动信号处理中的应用与拓展:两个实例及跨领...

MATLAB环境下一种基于稀疏最大谐波噪声比的解卷积机械振动信号处理方法。 算法运行环境为MATLAB r2018a,实现基于稀疏最大谐波噪声比解卷积的机械振动信号处理方法,提供两个振动信号处理的例子。 算法可迁移至金融时间序列,地震/微震信号&…

2026/7/8 10:30:51 阅读更多 →
Simulink仿真:基于Matlab Simulink的光伏系统非线性输出特性研究与MPPT...

Simulink仿真:基于Matlab Simulink的光伏系统非线性输出特性研究与MPPT...

Simulink仿真:基于Matlab/Simulink的光伏系统最大功率点跟踪控制算法研究 关键词:非线性输出特性 光伏电池 Matlab/Simulink 仿真模型 MPPT 参考文献:无 仿真平台:MATLAB/Simulink 主要内容:目前,在新能源发…

2026/7/4 9:40:15 阅读更多 →
【MySQL实操】停服务方式新增从库:从架构到落地全指南

【MySQL实操】停服务方式新增从库:从架构到落地全指南

在 MySQL 主从复制架构中,当需要扩展从库节点时,若业务允许短时间停服务(比如夜间维护窗口),直接复用旧从库的数据和配置是最高效的方案。这种方式无需重新全量备份主库,能最大程度保证数据一致性&#xff…

2026/7/5 19:19:09 阅读更多 →

最新新闻

ADP5350与STM32F205RB嵌入式电源管理方案解析

ADP5350与STM32F205RB嵌入式电源管理方案解析

1. 为什么选择ADP5350与STM32F205RB组合? 在嵌入式系统设计中,电源管理一直是决定产品可靠性的关键因素。ADP5350作为ADI公司推出的高级电源管理IC(PMIC),其最大特点在于集成了完整的电池管理功能与多路高效DC-DC转换器…

2026/7/8 16:00:08 阅读更多 →
Telegram AI Bot自动化实战:5步用Make搭建业务工作台

Telegram AI Bot自动化实战:5步用Make搭建业务工作台

1. 项目概述:为什么 Telegram 不该只是个聊天工具? Telegram AI Bot 教程 —— 别再只会建群,5步把 TG 变成你的自动化工作台。这句话不是营销话术,而是我过去18个月在真实业务场景中反复验证过的结论。我服务过7家中小团队&#…

2026/7/8 16:00:08 阅读更多 →
红杉会议全场景落地医疗行业,构建院内+医联体一体化视讯协同体系

红杉会议全场景落地医疗行业,构建院内+医联体一体化视讯协同体系

摘要随着《“健康中国2030”规划纲要》、紧密型县域医共体建设政策持续落地,远程医疗、院内无纸化协同、跨院资源下沉成为医院数字化转型刚需。传统医疗沟通模式存在院内科室沟通低效、跨院区联动困难、医联体远程协同画质差、晨会/会诊纪要人工整理繁琐、医疗监控现…

2026/7/8 16:00:08 阅读更多 →
MySQL 8.0的自增主键持久化特性

MySQL 8.0的自增主键持久化特性

MySQL 8.0 的 AUTO_INCREMENT 值为什么重启后不丢因为 InnoDB 把当前自增计数器的值(不是“下一个值”,而是已分配过的最大值)作为元数据,随每次 INSERT 或显式 ALTER TABLE ... AUTO_INCREMENT N 操作,一并写入 redo…

2026/7/8 15:58:06 阅读更多 →
数学建模国赛C题 2023:Python 实现 3 大问题完整求解流程与代码解析

数学建模国赛C题 2023:Python 实现 3 大问题完整求解流程与代码解析

数学建模国赛C题 2023:Python 实现 3 大问题完整求解流程与代码解析在生鲜商超的日常运营中,蔬菜类商品的补货决策一直是个令人头疼的问题。凌晨补货时,商家既看不到当天的具体单品,也不知道最终售价,却要在这种情况下…

2026/7/8 15:58:06 阅读更多 →
NBM7100A与PIC24FV32KA304优化不可充电电池寿命方案

NBM7100A与PIC24FV32KA304优化不可充电电池寿命方案

1. 不可充电电池的寿命挑战与解决方案概述在低功耗物联网设备和便携式电子设备中,不可充电的初级电池(如锂锰纽扣电池)面临着严峻的寿命挑战。这类电池在提供突发大电流时会出现显著的电压下降,导致系统过早判断电池耗尽而停止工作…

2026/7/8 15:58:06 阅读更多 →

日新闻

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: …

2026/7/8 0:00:48 阅读更多 →
MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N1 到批处理的全路径 一、从"功能正确"到"性能可接受"——MyBatis 批量操作的三段式进化 MyBatis 在日常增删改查场景中几乎是无感的——实体映射直观、SQL 控制灵活。但当数据量从千级上升到十万级、百万级,许…

2026/7/8 0:00:48 阅读更多 →
工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

1. 工业负载控制方案概述在工业自动化、电机驱动和照明控制等高需求场景中,可靠地控制电感和电阻负载是核心挑战之一。TPD2015FN作为东芝的8通道高端智能功率开关IC,配合PIC18F45K22微控制器,能够构建一套稳定、高效的负载控制系统。这套组合…

2026/7/8 0:02:48 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/7 14:24:45 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/7 15:59:06 阅读更多 →

月新闻