OpenCV:Depth和Type傻傻分不清楚

DisFlow:基于距离场的动态场景6DoF位姿跟踪新范式 距离场(SDF)作为一种隐式几何表征,正逐渐成为动态场景理解的核心基础——它天然具备连续性、可微性与抗噪能力,能将表面几何与运动语义统一建模。相比传统光流、场景流或分割驱动的方法,SDF通过空间梯度表达法向、时间导数编码速度,使刚体运动约束内生于网络结构,显著提升6DoF位姿估计的鲁棒性与实时性。该技术已在AR工业维修、自动驾驶V2X协同感知及机器人动态抓取等强时序-空间耦合场景中验证价值,尤其适用于单目视频输入下的多物体解耦跟踪。DisFlow正是这一思想落地的代表性框架。 阅读详情

刚开始使用OpenCV时,经常会胡乱使用CV_8U和CV_8UC1,这两种宏经常傻傻分不清楚。下面我们就来理一理它们之间的关系和区别。

Depth

官方文档对Depth的解释是单独一个通道的类型,通俗的说就是图像中单独一个元素的类型,它可以有以下的类型:

#define CV_8U 0
#define CV_8S 1
#define CV_16U 2
#define CV_16S 3
#define CV_32S 4
#define CV_32F 5
#define CV_64F 6
#define CV_USRTYPE1 7

Type

Type其实也很好理解,它实际上是将Depth和通道个数混合在一起的一个类型,所以它的种类比较多:

#define CV_8UC1 CV_MAKETYPE(CV_8U,1)
#define CV_8UC2 CV_MAKETYPE(CV_8U,2)
#define CV_8UC3 CV_MAKETYPE(CV_8U,3)
#define CV_8UC4 CV_MAKETYPE(CV_8U,4)
#define CV_8UC(n) CV_MAKETYPE(CV_8U,(n))

#define CV_8SC1 CV_MAKETYPE(CV_8S,1)
#define CV_8SC2 CV_MAKETYPE(CV_8S,2)
#define CV_8SC3 CV_MAKETYPE(CV_8S,3)
#define CV_8SC4 CV_MAKETYPE(CV_8S,4)
#define CV_8SC(n) CV_MAKETYPE(CV_8S,(n))

#define CV_16UC1 CV_MAKETYPE(CV_16U,1)
#define CV_16UC2 CV_MAKETYPE(CV_16U,2)
#define CV_16UC3 CV_MAKETYPE(CV_16U,3)
#define CV_16UC4 CV_MAKETYPE(CV_16U,4)
#define CV_16UC(n) CV_MAKETYPE(CV_16U,(n))

#define CV_16SC1 CV_MAKETYPE(CV_16S,1)
#define CV_16SC2 CV_MAKETYPE(CV_16S,2)
#define CV_16SC3 CV_MAKETYPE(CV_16S,3)
#define CV_16SC4 CV_MAKETYPE(CV_16S,4)
#define CV_16SC(n) CV_MAKETYPE(CV_16S,(n))

#define CV_32SC1 CV_MAKETYPE(CV_32S,1)
#define CV_32SC2 CV_MAKETYPE(CV_32S,2)
#define CV_32SC3 CV_MAKETYPE(CV_32S,3)
#define CV_32SC4 CV_MAKETYPE(CV_32S,4)
#define CV_32SC(n) CV_MAKETYPE(CV_32S,(n))

#define CV_32FC1 CV_MAKETYPE(CV_32F,1)
#define CV_32FC2 CV_MAKETYPE(CV_32F,2)
#define CV_32FC3 CV_MAKETYPE(CV_32F,3)
#define CV_32FC4 CV_MAKETYPE(CV_32F,4)
#define CV_32FC(n) CV_MAKETYPE(CV_32F,(n))

#define CV_64FC1 CV_MAKETYPE(CV_64F,1)
#define CV_64FC2 CV_MAKETYPE(CV_64F,2)
#define CV_64FC3 CV_MAKETYPE(CV_64F,3)
#define CV_64FC4 CV_MAKETYPE(CV_64F,4)
#define CV_64FC(n) CV_MAKETYPE(CV_64F,(n))

参考资料

【19】OpenCV C++实战篇——Mat.depth()的理解——每个像素的位数——每个像素中每个通道的精度 本文介绍了OpenCV中图像深度(depth)的概念及其意义。图像深度指每个像素的存储位数,决定了图像色彩分辨率,如8位单通道可表示256级灰度。文章详细解析了Mat.depth()返回的0-6数字对应不同位数类型(CV_8U/CV_32F等),并说明S/U/F分别表示有符号/无符号/浮点类型。同时阐述了不同深度类型(8位/32位浮点等)在显示时的转换规则,如32位浮点需乘以255映射到0-255范围。最后指出通道数(C1/C3/C4)对应灰度/彩色/带透明通道图像。 阅读详情

相关推荐

opencv中Mat数据类型中data、size、depth、channels、elemsize、rows、cols、step等属性内涵

用来度量每一个像素中每一个通道的精度,但它本身与图像的通道数无关!elemSize 表示每个元素的大小(单位字节),每个元素可能有多个通道,示例中,每个元素有三个通道,而每个通道类型为CV_16U,算3个通道的总数, 2*3=6。表示的是一个矩阵中的每个元素分别有几个值,如一个4*3的矩阵,有12个元素,每个元素如果有三个值,则此矩阵有三个通道。Mat矩阵的维度,若Mat是一个二维矩阵,则dims=2,三维则dims=3,大多数情况下处理的都是二维矩阵,是一个平面上的矩阵。Mat矩阵元素拥有的通道数。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 2867

OpenCV深度depth的理解

depth:深度,即每一个像素的位数(bits),在opencv的Mat.depth()中得到的是一个 0 – 6 的数字,分别代表不同的位数:enum { CV_8U=0, CV_8S=1, CV_16U=2, CV_16S=3, CV_32S=4, CV_32F=5, CV_64F=6 };因为您需要决定如何转换更大范围的可能值(+/-20亿!图像深度是指存储每个像素所用的位数,也用于量度图像的色彩分辨率.图像深度确定彩色图像的每个像素可能有的颜色数,或者确定灰度图像的每个像素可能有的灰度级数.

weixin_43763292的博客 997

汇编语言与USB量产工具开发解析

本文解析了汇编语言在USB量产工具开发中的应用。USB量产工具主要用于批量配置USB设备,包括固件烧录、格式化、信息写入等功能。汇编语言在底层硬件操作中发挥关键作用,如直接控制USB寄存器、编写驱动和精确时序控制。文章通过伪代码示例展示了USB控制器初始化和固件烧录流程,并强调硬件依赖性、安全机制和时序精度等注意事项。开发需严格遵循芯片手册,建议优先使用厂商SDK,避免设备损坏风险。

RulesChen的博客 1024

opencv 图像深度depth的理解

我们在创建mat的时候,可以选择的CvType中有很多的选项 CV_8UC1 CV_8SC1 CV_16U C1 CV_16SC1 CV_8UC2 CV_8SC2 CV_16UC2 CV_16SC2 CV_8UC3 CV_8SC3 CV_16UC3 CV_16SC3 CV_8UC4 CV_8SC4 C

datouniao1的博客 1万+

保姆级教程:用海思PQTool搞定ISP图像调试,从参数读取到固件烧录全流程

本文提供海思PQTool的ISP图像调试全流程指南,从参数读取、实时调试到固件烧录,涵盖环境配置、核心功能解析、参数固化及生产部署。通过实战案例和避坑指南,帮助开发者高效提升图像质量,适用于海思开发板的ISP调试与优化。

weixin_30872337的博客 279

【PLC】三菱plc控件安装 component Movedata had the following error ... Error Number:-119

Windows 10 专业版/企业版本版本号:22H2操作系统内部版本:19045.3448。

少莫千华 8001

OpenCV~图像深度

这样保存的图像默认是每个通道8位的字节图像,常见的RGB图像是图像深度为24,这个可以通过windows下查看图像属性获得,截图如下:如果每个通道占16位的话,RGB图像深度就会变成48,如果每个通道占32位的话,深度就会变成96,显然图像深度越大,图像文件也会越多,加载时候消耗的内存也会越多,所以OpenCV中默认读写图像都是每个通道8位(单字节)图像。whaosoft aiot http://143ai.com

whaosoft143ai的博客 2242

Windows Server 2012评估版过期自动关机问题:两种高效解决方案详解

本文针对Windows Server 2012评估版过期导致的自动关机问题,提供了两种高效解决方案。一是通过slmgr.vbs命令重置授权,临时延长评估期;二是使用DISM工具将评估版转换为正式版,一劳永逸。文章详细解析了两种方法的操作步骤、注意事项及适用场景,帮助用户快速恢复服务器稳定运行。

pytorchlight8的博客 1195

egmucv数据类型总结

1、DepthType(指定图像深度的类型,最常用的是cv8u) 2、channels 图像的通道总共有三种分别为1、3、4,1对应灰度图像,3对象bgr图像,4对应bgra图像(a是透明度,值的范围和bgr一样,0表示全透明) ...

qq_34059233的博客 376

JavaScript 书签脚本实战:腾讯/优酷/爱奇艺等5大视频站m3u8链接一键提取

本文详细介绍了如何使用JavaScript书签脚本一键提取腾讯视频、优酷、爱奇艺等五大视频平台的m3u8流媒体链接。通过分析播放器内部对象结构,开发者可以高效获取视频源文件,避免录屏画质损失。文章包含各平台适配方案、实战增强功能开发及企业级解决方案设计,帮助用户快速掌握这一实用技术。

weixin_27945229的博客 596

告别算力焦虑:手把手教你用华为CloudMatrix384超节点部署MoE大模型(附xDeepServe配置)

本文详细解析了如何在华为CloudMatrix384超节点上高效部署MoE大模型,通过xDeepServe框架配置和专家分配优化,实现2300 Tokens/s的推理吞吐。文章涵盖环境准备、性能调优、成本平衡及容灾设计,帮助开发者告别算力焦虑,提升AI推理效率。

weixin_30790841的博客 439

树莓派远程桌面实战:VNC与XRDP方案对比与配置指南

远程桌面技术是实现远程图形化操作的核心方案,其原理是通过网络协议传输图形界面数据,实现远程控制。在物联网和嵌入式开发领域,远程桌面能显著提升设备管理效率,尤其适用于树莓派这类资源受限但应用广泛的小型设备。VNC作为经典的远程图形协议,基于图像帧传输,通用性强但效率相对较低;而XRDP实现了微软RDP协议,采用图形指令传输,在带宽利用和响应速度上更具优势。对于树莓派用户而言,选择VNC还是XRDP需综合考虑客户端平台、网络环境及性能需求。本文聚焦树莓派平台,详细解析VNC和XRDP的配置流程、性能优化及常见问

weixin_30555515的博客 394

利用 RSAU_LOG_API 把 SAP 安全审核日志接入企业 SIEM 的完整指南

在 SAP 世界里,安全审核日志(Security Audit Log,简称 SAL)是审计和合规的核心基础设施之一。系统会在后台把安全相关的关键事件记录下来,比如:(用户登录与登录失败用户锁定、解锁权限对象或角色变更远程调用(RFC)相关活动关键事务码的启动程序直接执行、批处理作业相关的敏感操作传统 ABAP 系统里,这些日志会写到本地应用服务器上的审计文件中(背后对应类似表RSAUENTR2的结构),包含事件标识、客户端、用户、终端、事务码、时间戳等信息。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 161

<OpenCV> 数据类型宏定义【CV_8U、CV_8S、CV_16U...】

数据类型宏定义 #define CV_CN_MAX 512 #define CV_CN_SHIFT 3 #define CV_DEPTH_MAX (1 << CV_CN_SHIFT) #define CV_8U 0 #define CV_8S 1 #define CV_16U 2 #define CV_16S 3 #define CV_32S 4 #define CV_32F 5 #define CV_64F 6 #define CV_16F 7 #defi

thisiszdy的博客 2067

2026年全国青少年信息素养大赛算法应用主题赛(C++赛项复赛模拟卷1:文末附答案)

2026年全国青少年信息素养大赛算法应用主题赛(C++赛项复赛模拟卷1:文末附答案)

王老师青少年编程 1610

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

opencv处理深度图基本操作

opencv处理深度图,和处理普通图像差不多,但是有一些地方需要注意。opencv数据类型对应关系:总结了下opencv对深度图常规操作,后续遇到新情况继续添加补充。

weixin_39425383的博客 2452

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

OpenCV中Mat类成员data、dims、step、depth()、channels()、elemSize()等解析

cv::Mat depth/dims/channels/step/data/elemSize The class Mat represents an n-dimensional dense numerical single-channel or multi-channel array. It can be used to store (Mat类的对象用于表示一个多维度的单通道或者多通道稠密数组,它可以用来存储以下东西) real or complex-valued vectors or matrices (

人生几何的博客 5918

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

OpenCV中cv::Mat 数据类型 depth()和type()

OpenCV中如何获取数据 矩阵cv::Mat的数据类型?一般有2个常用函数, depth() 返回是基本的数据类型,也就是说每个数据元素的类型,该函数并不关心矩阵cv::Mat的维度, // <interface.h> #define CV_8U 0 #define CV_8S 1 #define CV_16U 2 #define CV_16S 3 #define...

tanmx219的博客 9440

【OpenCV教程】OpenCV中的数据类型

【OpenCV教程】OpenCV中的数据类型

在这里你甚至能学算卦,快进来看看 3454

opencv——Mat对象depth(CV_8UC3、CV_32F等)

目录Mat对象构成Mat常用成员bit_depthCV_8|32|64S|U|FCMat对象创建方法imshow显示图像的映射 Mat对象构成 class CV_EXPORTS Mat { public: /*..很多方法..*/ /*............*/ int flags;/*flags指定图像的颜色空间 flags > 0 3通道的彩色图像 flags = 0 灰度图像 flags < 0 不作改变

路人coder 5270

opencv 图像深度(depth)

图像深度是指存储每个像素所用的位数,也用于量度图像的色彩分辨率.图像深度确定彩色图像的每个像素可能有的颜色数,或者确定灰度图像的每个像素可能有的灰度级数.它决定了彩色图像中可出现的最多颜色数,或灰度图像中的最大灰度等级.比如一幅单色图像,若每个象素有8位,则最大灰度数目为2的8次方,即256.一幅彩色图像RGB3个分量的象素位数分别为4,4,2,则最大颜色数目为2的4+4+2次方,即1024,就是...

a328062954的博客 7899

OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解

cv::Mat depth/dims/channels/step/data/elemSize The class Mat represents an n-dimensional dense numerical single-channel or multi-channel array. It can be used to store (Mat类的对象用于表示一个多维度的单通道或者多

CV_2013的专栏 1225

Opencv中图像深度(Depth)和通道数(Channels)区别

在OpenCV中,图像深度(Depth)和通道数(Channels)是两个完全不同的概念,需严格区分。

weixin_44770969的博客 1063

OpenCvSharp中CV_8UC1,CV_8UC2等参数的解释

Mat矩阵(图像容器)创建时CV_8UC1,CV_8UC2等参数介绍 Mat不但是一个非常有用的图像容器类,同时也是一个通用的矩阵类; 创建一个Mat对象的方法很多,我拿出其中一个重载的参数的MatType来解释一下 这里的type可以是任何的预定义类型,预定义类型的结构如下所示: CV_<bit_depth>(S|U|F)C<number_of_channels> 1、bit_depth --- 比特数 --- 代表8bite,16bites,32bites,6.

qq_48705696的博客 7574

opencv图像基础--图像深度

图像深度是指存储每个像素所用的位数,也用于量度图像的色彩分辨率.图像深度确定彩色图像的每个像素可能有的颜色数,或者确定灰度图像的每个像素可能有的灰度级数.它决定了彩色图像中可出现的最多颜色数,或灰度图像中的最大灰度等级.比如一幅单色图像,若每个象素有8位,则最大灰度数目为2的8次方,即256.一幅彩色图像RGB3个分量的象素位数分别为4,4,2,则最大颜色数目为2的4+4+2次方,即1024,就是

2124

Opencv学习----Opencv宏定义(CV_8U、CV_8S、CV_16U...)

数据类型宏定义: #define CV_8U 0 #define CV_8S 1 #define CV_16U 2 #define CV_16S 3 #define CV_32S 4 #define CV_32F 5 #define CV_64F 6 #define CV_16F 7 #define CV_8UC1 CV_MAKETYPE(CV_8U,1) #define ...

charce_you的专栏 2万+
上一篇: 使用CMake构建OpenCV项目
下一篇: 1KB快捷方式病毒的解决方法
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值