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采用requests库模拟登录和抓取数据的简单示例
Jul 05 Python
Python 将pdf转成图片的方法
Apr 23 Python
对Python3中的print函数以及与python2的对比分析
May 02 Python
python多行字符串拼接使用小括号的方法
Mar 19 Python
Python中的random.uniform()函数教程与实例解析
Mar 02 Python
python爬虫爬取微博评论案例详解
Mar 27 Python
Python搭建Spark分布式集群环境
Jul 05 Python
TensorFlow学习之分布式的TensorFlow运行环境
Feb 05 Python
Python环境下安装PyGame和PyOpenGL的方法
Mar 25 Python
解决jupyter notebook import error但是命令提示符import正常的问题
Apr 15 Python
golang中的空接口使用详解
Mar 30 Python
Pygame Rect区域位置的使用(图文)
Nov 17 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
mysql5写入和读出乱码解决
2006/11/25 PHP
深入理解PHP几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表
2013/06/06 PHP
zend framework文件上传功能实例代码
2013/12/25 PHP
php 不使用js实现页面跳转
2014/02/11 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
thinkPHP实现的联动菜单功能详解
2017/05/05 PHP
php和C#的yield迭代器实现方法对比分析
2019/07/17 PHP
jQuery1.5.1 animate方法源码阅读
2011/04/05 Javascript
js实现页面转发功能示例代码
2013/08/05 Javascript
使用js画图之圆、弧、扇形
2015/01/12 Javascript
jquery 根据name名获取元素的value值
2015/02/27 Javascript
基于insertBefore制作简单的循环插空效果
2015/09/21 Javascript
深入解析JavaScript编程中的this关键字使用
2015/11/09 Javascript
jQuery如何使用自动触发事件trigger
2015/11/29 Javascript
form表单序列化详解(推荐)
2017/08/15 Javascript
移动端效果之IndexList详解
2017/10/20 Javascript
Vue + Vue-router 同名路由切换数据不更新的方法
2017/11/20 Javascript
vue-cli2.9.3 详细教程
2018/04/23 Javascript
原生JavaScript实现滑动拖动验证的示例代码
2019/12/06 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
JavaScript中break、continue和return的用法区别实例分析
2020/03/02 Javascript
vue内置组件component--通过is属性动态渲染组件操作
2020/07/28 Javascript
python简单的函数定义和用法实例
2015/05/07 Python
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
Python学习笔记之While循环用法分析
2019/08/14 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
2019/12/12 Python
详解HTML5常用的语义化标签
2019/09/27 HTML / CSS
美国隐形眼镜网上商店:Lens.com
2019/09/03 全球购物
内科护士实习自我鉴定
2013/10/17 职场文书
行政部总经理岗位职责
2014/01/04 职场文书
房地产营销策划方案
2014/02/08 职场文书
继承公证书样本
2014/04/04 职场文书
2014年医院工作总结
2014/11/20 职场文书
优秀教师主要事迹材料
2015/11/04 职场文书
MySQL8.0的WITH查询详情
2021/08/30 MySQL