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版的文曲星猜数字游戏代码
Sep 02 Python
Python引用(import)文件夹下的py文件的方法
Aug 26 Python
Python网页解析利器BeautifulSoup安装使用介绍
Mar 17 Python
Python使用正则匹配实现抓图代码分享
Apr 02 Python
Python遍历目录并批量更换文件名和目录名的方法
Sep 19 Python
django定期执行任务(实例讲解)
Nov 03 Python
Python实现mysql数据库更新表数据接口的功能
Nov 19 Python
Django实现表单验证
Sep 08 Python
python之消除前缀重命名的方法
Oct 21 Python
解决python 读取excel时 日期变成数字并加.0的问题
Oct 08 Python
python中68个内置函数的总结与介绍
Feb 24 Python
Python 操作 MySQL数据库
Sep 18 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/12/29 PHP
php输出全球各个时区列表的方法
2015/03/31 PHP
微信公众平台开发(五) 天气预报功能开发
2016/12/03 PHP
PHP实现限制IP访问的方法
2017/04/20 PHP
php实现有序数组旋转后寻找最小值方法
2018/09/27 PHP
PHP http请求超时问题解决方案
2020/11/13 PHP
javascript笔试题目附答案@20081025_jb51.net
2008/10/26 Javascript
基于jQuery的ajax功能实现web service的json转化
2009/08/29 Javascript
Jquery实现三层遍历删除功能代码
2013/04/23 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
2013/11/13 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
2013/12/19 Javascript
JS阻止用户多次提交示例代码
2014/03/26 Javascript
JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果
2015/09/18 Javascript
JavaScript中文件上传API详解
2016/04/01 Javascript
Angular.js回顾ng-app和ng-model使用技巧
2016/04/26 Javascript
深入浅出 jQuery中的事件机制
2016/08/23 Javascript
jQuery中的insertBefore(),insertAfter(),after(),before()区别介绍
2016/09/01 Javascript
Angular2实现自定义双向绑定属性
2017/03/22 Javascript
解决Jquery下拉框数据动态获取的问题
2018/01/25 jQuery
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
2019/09/21 Javascript
vue中axios的二次封装实例讲解
2019/10/14 Javascript
python使用smtplib模块通过gmail实现邮件发送的方法
2015/05/08 Python
Django中模版的子目录与include标签的使用方法
2015/07/16 Python
Python实现读取文件最后n行的方法
2017/02/23 Python
浅谈python编译pyc工程--导包问题解决
2019/03/20 Python
python 字典的打印实现
2019/09/26 Python
Python实现字符串中某个字母的替代功能
2019/10/21 Python
pytorch 查看cuda 版本方式
2020/06/23 Python
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
init进程的作用
2012/04/12 面试题
安全检查验收制度
2014/01/12 职场文书
高校师德师风自我剖析材料
2014/09/29 职场文书
会议邀请函
2015/01/30 职场文书
房租涨价通知
2015/04/23 职场文书
婚礼迎宾词大全
2015/08/10 职场文书
法制教育主题班会
2015/08/13 职场文书