Opencv常见图像格式Data Type及代码实例


Posted in Python onNovember 02, 2020

cv::Mat 图像格式 (Data Type)命名规则

通用的参数命名格式为:

CV_{元素比特数}{元素类型}C{通道数}

1最常见的 CV_8UC3 就表示为 3通道Unsigned 8bits 格式的矩阵

  • 8U:8bit unsigned
  • C3:通道数为 3

2有些图片存储格式是 32位float ,则对应的图像格式为:CV_32FC1,CV_32FC2,CV_32FC3 等;

3如果图片存储格式是 64位double ,则对应的图像格式为:CV_64FC1,CV_64FC2,CV_64FC3 等。

int值映射关系

矩阵元素的数据类型也可用不同的 int 值来替代,其对应关系如下表:

Opencv常见图像格式Data Type及代码实例

取值范围

Opencv常见图像格式Data Type及代码实例

at所访问的数据类型

由于 at 方法接受的是 uchar 这样的数据类型,而非 CV_8U。 若是要使用 at 方法访问数据元素,在已知通道数和每个通道数据类型的情况下,指定给 at 方法的数据类型如下表所示:

Opencv常见图像格式Data Type及代码实例

Vec2b:表示每个Vec2b对象中,可以存储2个char(字符型)数据

Vec3b:表示每一个Vec3b对象中,可以存储3个char(字符型)数据,比如可以用这样的对象,去存储RGB图像

Vec4b:表示每一个Vec4b对象中,可以存储4个字符型数据,可以用这样的类对象去存储—4通道RGB+Alpha的图

对应的 Vec类 的定义如下:

template<typename _Tp, int n> class Vec : public Matx<_Tp, n, 1> {...};

typedef Vec<uchar, 2> Vec2b;
typedef Vec<uchar, 3> Vec3b;
typedef Vec<uchar, 4> Vec4b;

typedef Vec<short, 2> Vec2s;
typedef Vec<short, 3> Vec3s;
typedef Vec<short, 4> Vec4s;

typedef Vec<int, 2> Vec2i;
typedef Vec<int, 3> Vec3i;
typedef Vec<int, 4> Vec4i;

typedef Vec<float, 2> Vec2f;
typedef Vec<float, 3> Vec3f;
typedef Vec<float, 4> Vec4f;
typedef Vec<float, 6> Vec6f;

typedef Vec<double, 2> Vec2d;
typedef Vec<double, 3> Vec3d;

typedef Vec<double, 4> Vec4d;
typedef Vec<double, 6> Vec6d;

样例1

使用无参数构造函数,创建Mat对象

Mat image = Mat();
image.create(4, 4, CV_8UC3); 

或者

Mat m = Mat(4, 4, CV_8UC3)

此刻表示创建一个4x4大小的像素块,每个像素都是三通道每个通道的位数都是8位,一个字节的。上述CV_8UC3中的8表示8位、UC表示uchar类型、3表示三个通道。

样例2

使用行、列、类型、Scalar向量四个参数的构造函数创建Mat对象

Mat m = Mat(4, 4, CV_8UC3, Scalar(0, 255, 255);

或者

Mat m = Mat(Size(4, 4), CV_8UC3, Scalar(255, 0, 0)); 

同样表示创建一个4x4的像素块,唯一不一样的是颜色不是默认值而是我们指定的三通道颜色值向量Scalar(0, 255, 255)。其中Scalar向量数目永远是等于通道数目

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python计算已经过去多少个周末的方法
Jul 25 Python
python访问mysql数据库的实现方法(2则示例)
Jan 06 Python
Python数组定义方法
Apr 13 Python
Python中多线程的创建及基本调用方法
Jul 08 Python
如何在python字符串中输入纯粹的{}
Aug 22 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
Jul 31 Python
Python爬虫获取页面所有URL链接过程详解
Jun 04 Python
使用tensorflow进行音乐类型的分类
Aug 14 Python
Python使用grequests并发发送请求的示例
Nov 05 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
Nov 30 Python
Python实现随机爬山算法
Jan 29 Python
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
Apr 20 Python
Jupyter安装链接aconda实现过程图解
Nov 02 #Python
详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程
Nov 02 #Python
python定时截屏实现
Nov 02 #Python
PyQT5速成教程之Qt Designer介绍与入门
Nov 02 #Python
如何基于matlab相机标定导出xml文件
Nov 02 #Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
Nov 02 #Python
Python如何急速下载第三方库详解
Nov 02 #Python
You might like
php 高效率写法 推荐
2010/02/21 PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
2013/10/29 PHP
PHP内置的Math函数效率测试
2014/12/01 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
laravel 5 实现模板主题功能(续)
2015/03/02 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
2016/05/27 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
PHP实现数组根据某个单元字段排序操作示例
2018/08/01 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
2019/05/06 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
基于jQuery的ajax功能实现web service的json转化
2009/08/29 Javascript
IE事件对象(The Internet Explorer Event Object)
2012/06/27 Javascript
纯JS实现动态时间显示代码
2014/02/08 Javascript
全面兼容的javascript时间格式化函数(比较实用)
2014/05/14 Javascript
Nodejs异步回调的优雅处理方法
2014/09/25 NodeJs
jQuery实现选中弹出窗口选择框内容后赋值给文本框的方法
2015/11/23 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
2017/02/06 Javascript
ES6的异步终极解决方案分享
2019/07/11 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
详解Python中time()方法的使用的教程
2015/05/22 Python
Python hashlib模块用法实例分析
2018/06/12 Python
Python中字典与恒等运算符的用法分析
2019/08/22 Python
Python 变量的创建过程详解
2019/09/02 Python
Django配置Bootstrap, js实现过程详解
2020/10/13 Python
python中entry用法讲解
2020/12/04 Python
python 实现图片裁剪小工具
2021/02/02 Python
详解canvas.toDataURL()报错的解决方案全都在这了
2020/03/31 HTML / CSS
英国知名的皮手套品牌:Dents
2016/11/13 全球购物
马来西亚最大的电器网站:Senheng
2017/10/13 全球购物
《开国大典》教学反思
2014/04/19 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书
小学教学工作总结2015
2015/05/13 职场文书
迎新年主持词
2015/07/06 职场文书
房屋转让协议书(标准范本)
2016/03/21 职场文书