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删除指定目录下过期文件的2个脚本分享
Apr 10 Python
python输出指定月份日历的方法
Apr 23 Python
python中的lambda表达式用法详解
Jun 22 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
Jan 20 Python
Python中elasticsearch插入和更新数据的实现方法
Apr 01 Python
Python3使用turtle绘制超立方体图形示例
Jun 19 Python
python爬虫框架scrapy实现模拟登录操作示例
Aug 02 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
Aug 31 Python
我用Python抓取了7000 多本电子书案例详解
Mar 25 Python
django 控制页面跳转的例子
Aug 06 Python
解决Python在导入文件时的FileNotFoundError问题
Apr 10 Python
Python如何将字符串转换为日期
Jul 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查询搜索引擎排名位置的代码
2010/01/05 PHP
php的api数据接口书写实例(推荐)
2016/09/22 PHP
php 截取utf-8格式的字符串实例代码
2016/10/30 PHP
thinkPHP商城公告功能开发问题分析
2016/12/01 PHP
PHP中数组转换为SimpleXML教程
2019/01/27 PHP
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
2010/10/26 Javascript
javascript数字格式化通用类 accounting.js使用
2012/08/24 Javascript
jQuery产品间断向下滚动效果核心代码
2014/05/08 Javascript
JS+CSS实现鼠标滑过时动态翻滚的导航条效果
2015/09/24 Javascript
jQuery基于cookie实现的购物车实例分析
2015/12/24 Javascript
JS对大量数据进行多重过滤的方法
2016/11/04 Javascript
完美实现js焦点轮播效果(一)
2017/03/07 Javascript
JavaScript简单拖拽效果(1)
2017/05/17 Javascript
基于Bootstrap分页的实例讲解(必看篇)
2017/07/04 Javascript
protractor的安装与基本使用教程
2017/07/07 Javascript
Angular X中使用ngrx的方法详解(附源码)
2017/07/10 Javascript
vue.js $refs和$emit 父子组件交互的方法
2017/12/20 Javascript
JavaScript基础心法 数据类型
2018/03/05 Javascript
vue使用vuex实现首页导航切换不同路由的方法
2019/05/08 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
在weex中愉快的使用scss的方法步骤
2020/01/02 Javascript
在Python程序中进行文件读取和写入操作的教程
2015/04/28 Python
python2 与 pyhton3的输入语句写法小结
2018/09/10 Python
Django框架验证码用法实例分析
2019/05/10 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
2019/07/12 Python
英国灯具和灯泡网上商店:Lights.co.uk
2018/02/02 全球购物
Bath & Body Works阿联酋:在线购买沐浴和身体用品
2021/02/27 全球购物
应届生护士求职信
2013/11/01 职场文书
教师专业理论水平的自我评价分享
2013/11/09 职场文书
企业文化标语口号
2014/06/09 职场文书
违反交通安全法检讨书
2014/10/24 职场文书
三下乡个人总结
2015/03/04 职场文书
会议主持人开场白台词
2015/05/28 职场文书
导游词之苏州寒山寺
2019/12/05 职场文书
5种方法告诉你如何使JavaScript 代码库更干净
2021/09/15 Javascript