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中使用Boolean操作符做真值测试实例
Jan 30 Python
python实现颜色rgb和hex相互转换的函数
Mar 19 Python
浅析Python中元祖、列表和字典的区别
Aug 17 Python
Python实现的爬取网易动态评论操作示例
Jun 06 Python
python监控文件并且发送告警邮件
Jun 21 Python
对python xlrd读取datetime类型数据的方法详解
Dec 26 Python
PyQt5显示GIF图片的方法
Jun 17 Python
python3中numpy函数tile的用法详解
Dec 04 Python
pytorch实现focal loss的两种方式小结
Jan 02 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
Feb 09 Python
python修改微信和支付宝步数的示例代码
Oct 12 Python
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
May 31 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实现可以设置中奖概率的抽奖程序代码分享
2014/01/19 PHP
Yii中创建自己的Widget实例
2016/01/05 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
2020/04/27 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题
2007/01/09 Javascript
jQuery实现单行文字间歇向上滚动源代码
2013/06/02 Javascript
Js为表单动态添加节点内容的方法
2015/02/10 Javascript
jquery基础知识第一讲之认识jquery
2016/03/17 Javascript
浅谈几种常用的JS类定义方法
2016/06/08 Javascript
BootStrap selectpicker后台动态绑定数据
2017/06/01 Javascript
利用canvas中toDataURL()将图片转为dataURL(base64)的方法详解
2017/11/20 Javascript
JS脚本实现网页自动秒杀点击
2018/01/11 Javascript
深入了解javascript 数组的sort方法
2018/06/01 Javascript
JS扁平化输出数组的2种方法解析
2019/09/17 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
2019/12/29 Javascript
使用eslint和githooks统一前端风格的技巧
2020/07/29 Javascript
在Vue里如何把网页的数据导出到Excel的方法
2020/09/30 Javascript
jenkins自动构建发布vue项目的方法步骤
2021/01/04 Vue.js
[01:37]PWL S2开团时刻DAY1&2——这符有毒
2020/11/20 DOTA
Python中文编码那些事
2014/06/25 Python
总结Python中逻辑运算符的使用
2015/05/13 Python
python统计文本字符串里单词出现频率的方法
2015/05/26 Python
Python中Django框架利用url来控制登录的方法
2015/07/25 Python
关于Python中Inf与Nan的判断问题详解
2017/02/08 Python
Python之re操作方法(详解)
2017/06/14 Python
python运行其他程序的实现方法
2017/07/14 Python
Python3 pandas 操作列表实例详解
2019/09/23 Python
Python实现RGB与HSI颜色空间的互换方式
2019/11/27 Python
基于Python 中函数的 收集参数 机制
2019/12/21 Python
python实现opencv+scoket网络实时图传
2020/03/20 Python
tensorflow与numpy的版本兼容性问题的解决
2021/01/08 Python
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
学习决心书
2014/03/11 职场文书
离婚协议书标准格式
2014/10/04 职场文书
新郎婚礼答谢词
2015/01/04 职场文书
现货白银电话营销话术
2015/05/29 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书