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多进程编程下线程之间变量的共享问题
May 05 Python
Python探索之自定义实现线程池
Oct 27 Python
Python File readlines() 使用方法
Mar 19 Python
python多行字符串拼接使用小括号的方法
Mar 19 Python
Python2.7实现多进程下开发多线程示例
May 31 Python
django drf框架自带的路由及最简化的视图
Sep 10 Python
python序列类型种类详解
Feb 26 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
Apr 14 Python
解决Django Haystack全文检索为空的问题
May 19 Python
python 带时区的日期格式化操作
Oct 23 Python
解决pytorch-gpu 安装失败的记录
May 24 Python
教你使用Python获取QQ音乐某个歌手的歌单
Apr 03 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 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
2019/02/15 PHP
详解PHP 7.4 中数组延展操作符语法知识点
2019/07/19 PHP
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
jquery验证表单中的单选与多选实例
2013/08/18 Javascript
js获取上传文件大小示例代码
2014/04/10 Javascript
JavaScript实现横向滑出的多级菜单效果
2015/10/09 Javascript
jQuery点击改变class并toggle及toggleClass()方法定义用法
2015/12/11 Javascript
JS动态插入并立即执行回调函数的方法
2016/04/21 Javascript
深入理解jQuery中的事件冒泡
2016/05/24 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
2016/06/03 Javascript
Vue-Cli中自定义过滤器的实现代码
2017/08/12 Javascript
VueJs 搭建Axios接口请求工具
2017/11/20 Javascript
详解如何在vue项目中引入elementUI组件
2018/02/11 Javascript
vue实现简单瀑布流布局
2020/05/28 Javascript
[04:52]第二届DOTA2亚洲邀请赛主赛事第一天比赛集锦:OG娜迦海妖放大配合谜团大中3人
2017/04/02 DOTA
python批量修改图片大小的方法
2018/07/24 Python
在Pandas中给多层索引降级的方法
2018/11/16 Python
Python3中exp()函数用法分析
2019/02/19 Python
使用pyinstaller逆向.pyc文件
2019/12/20 Python
C语言编程练习
2012/04/02 面试题
汽车电子与维修专业大学生求职信
2013/09/28 职场文书
建筑专业自荐信
2013/10/18 职场文书
高等教育学自荐书范文
2014/02/10 职场文书
逃课上网检讨书
2014/02/20 职场文书
金融管理毕业生求职信
2014/03/03 职场文书
经典英文广告词
2014/03/18 职场文书
反四风个人对照检查材料
2014/09/26 职场文书
2014年客户经理工作总结
2014/11/20 职场文书
一文搞懂如何实现Go 超时控制
2021/03/30 Python
DBCA命令行搭建Oracle ADG的流程
2021/06/11 Oracle
Java各种比较对象的方式的对比总结
2021/06/20 Java/Android
为什么代码规范要求SQL语句不要过多的join
2021/06/23 MySQL
SQL Server查询某个字段在哪些表中存在
2022/03/03 SQL Server
python数字图像处理数据类型及颜色空间转换
2022/06/28 Python