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中的文件和目录操作实现代码
Mar 13 Python
Python中使用item()方法遍历字典的例子
Aug 26 Python
Python中用sleep()方法操作时间的教程
May 22 Python
selenium python浏览器多窗口处理代码示例
Jan 15 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
Feb 08 Python
对tf.reduce_sum tensorflow维度上的操作详解
Jul 26 Python
python+ffmpeg批量去视频开头的方法
Jan 09 Python
Python基于mysql实现学生管理系统
Feb 21 Python
numpy库reshape用法详解
Apr 19 Python
Django 用户登陆访问限制实例 @login_required
May 13 Python
python 实现弹球游戏的示例代码
Nov 17 Python
Python爬虫教程之利用正则表达式匹配网页内容
Dec 08 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
wordpress之wp-settings.php
2007/08/17 PHP
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
PHP实现提取一个图像文件并在浏览器上显示的代码
2012/10/06 PHP
PHP 过滤页面中的BOM(实现代码)
2013/06/29 PHP
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
php+mysql结合Ajax实现点赞功能完整实例
2015/01/30 PHP
修改Laravel5.3中的路由文件与路径
2016/08/10 PHP
PHP使用PDO操作sqlite数据库应用案例
2019/03/07 PHP
input 输入框内的输入事件详细分析
2010/03/17 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
NodeJS学习笔记之FS文件模块
2015/01/13 NodeJs
JavaScript中的函数嵌套使用
2015/06/04 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
详解Node.js中exports和module.exports的区别
2017/04/19 Javascript
Angularjs自定义指令Directive详解
2017/05/27 Javascript
JS鼠标3次点击事件实现代码及扩展思路
2017/09/12 Javascript
微信小程序+腾讯地图开发实现路径规划绘制
2019/05/22 Javascript
基于Node.js搭建hexo博客过程详解
2019/06/25 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
2019/10/10 jQuery
在Python的框架中为MySQL实现restful接口的教程
2015/04/08 Python
django上传图片并生成缩略图方法示例
2017/12/11 Python
python内存管理机制原理详解
2019/08/12 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
2020/04/22 Python
TensorFlow中如何确定张量的形状实例
2020/06/23 Python
python实现批处理文件
2020/07/28 Python
澳洲CFL商城:CHEMIST FOR LESS(中文)
2021/02/28 全球购物
盛大笔试题
2016/11/05 面试题
公司合作协议书范本
2014/04/18 职场文书
省级优秀毕业生主要事迹
2014/05/29 职场文书
奥林匹克的口号
2014/06/13 职场文书
反腐倡廉警示教育活动心得体会
2014/09/04 职场文书
2015年青年志愿者协会工作总结
2015/04/27 职场文书
导游词之扬州大明寺
2019/10/09 职场文书
php7中停止php-fpm服务的方法详解
2021/05/09 PHP
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
2021/05/25 Python
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js