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之总结参数的传递
Oct 10 Python
在Python中使用NLTK库实现对词干的提取的教程
Apr 08 Python
python获取mp3文件信息的方法
Jun 15 Python
Python找出list中最常出现元素的方法
Jun 14 Python
总结网络IO模型与select模型的Python实例讲解
Jun 27 Python
python找出因数与质因数的方法
Jul 25 Python
Django 创建后台,配置sqlite3教程
Nov 18 Python
如何在python中执行另一个py文件
Apr 30 Python
PyQt中使用QtSql连接MySql数据库的方法
Jul 28 Python
Python列表元素删除和remove()方法详解
Jan 04 Python
python爬虫今日热榜数据到txt文件的源码
Feb 23 Python
pytorch DataLoader的num_workers参数与设置大小详解
May 28 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 定界符格式引起的错误
2011/05/24 PHP
thinkphp浏览历史功能实现方法
2014/10/29 PHP
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
浅谈PHP中静态方法和非静态方法的相互调用
2016/10/04 PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
2017/06/06 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
2017/06/10 PHP
php7新特性的理解和比较总结
2019/04/14 PHP
javascript当onmousedown、onmouseup、onclick同时应用于同一个标签节点Element
2010/01/05 Javascript
JQuery获取表格数据示例代码
2014/05/26 Javascript
jQuery文件上传插件Uploadify使用指南
2014/06/05 Javascript
IE中getElementsByName()对有些元素无效的解决方案
2014/09/28 Javascript
javascript发送短信验证码实现代码
2015/11/12 Javascript
每天一篇javascript学习小结(属性定义方法)
2015/11/19 Javascript
js的各种排序算法实现(总结)
2016/07/23 Javascript
详解JS异步加载的三种方式
2017/03/07 Javascript
Angular4绑定html内容出现警告的处理方法
2017/11/03 Javascript
简单的三步vuex入门
2018/05/20 Javascript
jQuery实现表格隔行换色
2018/09/01 jQuery
vue监听dom大小改变案例
2020/07/29 Javascript
Python字符串替换实例分析
2015/05/11 Python
python操作excel文件并输出txt文件的实例
2018/07/10 Python
Selenium(Python web测试工具)基本用法详解
2018/08/10 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
2019/08/02 Python
python爬虫 爬取超清壁纸代码实例
2019/08/16 Python
python怎么提高计算速度
2020/06/11 Python
html5生成柱状图(条形图)效果的实例代码
2016/03/25 HTML / CSS
html5实现滑块功能之type=&quot;range&quot;属性
2020/02/18 HTML / CSS
利用指针变量实现队列的入队操作
2012/04/07 面试题
关于热爱祖国的演讲稿
2014/05/04 职场文书
2014年学雷锋活动总结
2014/06/26 职场文书
交通事故委托书范本(2篇)
2014/09/21 职场文书
2014年单位法制宣传日活动总结
2014/11/01 职场文书
写给导师的自荐信
2015/03/06 职场文书
Python如何使用logging为Flask增加logid
2021/03/30 Python
如何判断pytorch是否支持GPU加速
2021/06/01 Python
教你用python实现12306余票查询
2021/06/30 Python