OpenCV学习笔记(十一)——谈谈像素的类型和对Templates的限制使用

本文深入探讨了C++模板在OpenCV框架中的应用及其带来的优势与潜在效率损失,着重分析了不同数据类型(如8位无符号整型、16位无符号整型等)在矩阵操作中的表现,以及如何通过模板简化代码并提高安全性。同时,文章指出在当前OpenCV版本中,过度使用模板可能降低性能,并提供了合理使用的建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Templates是c++的一个很强大的特征,可以是数据结构更加安全高效。但也会增加编译时间和代码的长度,当函数被频繁调用的时候便步那么高效,所以在目前的OpenCV版本不推荐过多的使用templates。矩阵元素可以是如下类型中的一种:

• 8-bit unsigned integer (uchar)
• 8-bit signed integer (schar)
• 16-bit unsigned integer (ushort)
• 16-bit signed integer (short)
• 32-bit signed integer (int)
• 32-bit floating-point number (float)
• 64-bit floating-point number (double)

对于这些数据类型又定义了如下的枚举变量:

enum { CV_8U=0, CV_8S=1, CV_16U=2, CV_16S=3, CV_32S=4, CV_32F=5, CV_64F=6 };
CV_32FC1 == CV_32F; CV_32FC2 == CV_32FC(2) == CV_MAKETYPE(CV_32F, 2); CV_MAKETYPE(depth, n) == ((x&7)<<3) + (n-1);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值