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虚拟环境Virtualenv使用教程
May 18 Python
解决matplotlib库show()方法不显示图片的问题
May 24 Python
对python 多个分隔符split 的实例详解
Dec 20 Python
解决Pycharm后台indexing导致不能run的问题
Jun 27 Python
Python画图高斯分布的示例
Jul 10 Python
python3 下载网络图片代码实例
Aug 27 Python
Django 请求Request的具体使用方法
Nov 11 Python
基于python traceback实现异常的获取与处理
Dec 13 Python
Python 实现Serial 与STM32J进行串口通讯
Dec 18 Python
python使用梯度下降算法实现一个多线性回归
Mar 24 Python
利用keras使用神经网络预测销量操作
Jul 07 Python
Python爬虫简单运用爬取代理IP的实现
Dec 01 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反转字符串函数strrev()函数的用法
2012/02/04 PHP
迅速确定php多维数组的深度的方法
2014/01/07 PHP
Zend Framework动作助手Url用法详解
2016/03/05 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
IE7中javascript操作CheckBox的checked=true不打勾的解决方法
2009/12/07 Javascript
js 编写规范
2010/03/03 Javascript
读jQuery之十四 (触发事件核心方法)
2011/08/23 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
2012/04/12 Javascript
js控制当再次点击按钮时的间隔时间
2014/06/03 Javascript
js实现3d悬浮效果
2017/02/16 Javascript
JS中实现函数return多个返回值的实例
2017/02/21 Javascript
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
2019/03/01 Javascript
ES6 Class中实现私有属性的一些方法总结
2019/07/08 Javascript
使用axios请求接口,几种content-type的区别详解
2019/10/29 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
2020/08/18 Javascript
[01:32]2016国际邀请赛中国区预选赛CDEC战队教练采访
2016/06/26 DOTA
Python下使用Psyco模块优化运行速度
2015/04/05 Python
对Python中DataFrame按照行遍历的方法
2018/04/08 Python
快速解决PyCharm无法引用matplotlib的问题
2018/05/24 Python
程序员写Python时的5个坏习惯,你有几条?
2018/11/26 Python
NumPy统计函数的实现方法
2020/01/21 Python
python pyecharts 实现一个文件绘制多张图
2020/05/13 Python
css3 transform属性详解
2014/09/30 HTML / CSS
萌新HTML5 入门指南(二)
2020/11/09 HTML / CSS
美国二手奢侈品寄售网站:TheRealReal
2016/10/29 全球购物
小米官方旗舰店:Xiaomi
2020/08/07 全球购物
几个数据库方面的面试题
2016/07/01 面试题
大学生学习2014年全国两会心得体会
2014/03/12 职场文书
薪资证明范本
2015/06/19 职场文书
老人节主持词
2015/07/04 职场文书
小学班主任教育随笔
2015/08/15 职场文书
给学校的建议书400字
2015/09/14 职场文书
2016高三毕业赠言寄语
2015/12/04 职场文书
springBoot基于webSocket实现扫码登录
2021/06/22 Java/Android
JVM钩子函数的使用场景详解
2021/08/23 Java/Android