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文件操作类操作实例详解
Jul 11 Python
举例详解Python中yield生成器的用法
Aug 05 Python
浅析Python中signal包的使用
Nov 13 Python
Python的socket模块源码中的一些实现要点分析
Jun 06 Python
Python进阶-函数默认参数(详解)
May 18 Python
python 输入一个数n,求n个数求乘或求和的实例
Nov 13 Python
Django中间件拦截未登录url实例详解
Sep 03 Python
python shell命令行中import多层目录下的模块操作
Mar 09 Python
利用Python实现Excel的文件间的数据匹配功能
Jun 16 Python
Matlab中plot基本用法的具体使用
Jul 17 Python
Python实现画图软件功能方法详解
Jul 28 Python
Python如何将装饰器定义为类
Jul 30 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/10/25 PHP
PHP使用CURL获取302跳转后的地址实例
2014/05/04 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
php实现分页功能的详细实例方法
2019/09/29 PHP
javascript JSON操作入门实例
2010/04/16 Javascript
JavaScript中valueOf函数与toString方法深入理解
2012/12/02 Javascript
javascript中节点的最近的相关节点访问方法
2013/03/20 Javascript
extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
2013/04/02 Javascript
JQuery 在线引用及测试引用是否成功
2014/06/24 Javascript
浅谈javascript 迭代方法
2015/01/21 Javascript
NodeJS学习笔记之Connect中间件应用实例
2015/01/27 NodeJs
Jquery中使用show()与hide()方法动画显示和隐藏图片
2015/10/08 Javascript
jQuery实现进度条效果代码
2015/12/17 Javascript
JQuery+EasyUI轻松实现步骤条效果
2016/02/22 Javascript
纯前端JavaScript实现Excel IO案例分享
2016/08/26 Javascript
jQuery页面弹出框实现文件上传
2017/02/09 Javascript
详解vue项目接入微信JSSDK的坑
2018/12/14 Javascript
Vue.js样式动态绑定实现小结
2019/01/24 Javascript
VSCode使用之Vue工程配置eslint
2019/04/30 Javascript
vue 避免变量赋值后双向绑定的操作
2020/11/07 Javascript
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
浅谈Python中的bs4基础
2018/10/21 Python
利用Python实现kNN算法的代码
2019/08/16 Python
python函数的作用域及关键字详解
2019/08/20 Python
Django import export实现数据库导入导出方式
2020/04/03 Python
pandas读取csv文件提示不存在的解决方法及原因分析
2020/04/21 Python
详解win10下pytorch-gpu安装以及CUDA详细安装过程
2021/01/28 Python
浅谈html5 video 移动端填坑记
2018/01/15 HTML / CSS
总结html5自定义属性有哪些
2020/04/01 HTML / CSS
意大利自行车商店:Cingolani Bike Shop
2019/09/03 全球购物
秋季运动会加油稿200字
2014/01/11 职场文书
服务型党组织建设典型材料
2014/05/07 职场文书
新闻传播专业求职信
2014/07/22 职场文书
天下第一关导游词
2015/02/06 职场文书
董存瑞观后感
2015/06/11 职场文书
解决golang结构体tag编译错误的问题
2021/05/02 Golang