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自动安装pip
Apr 24 Python
python进程管理工具supervisor使用实例
Sep 17 Python
linux下python抓屏实现方法
May 22 Python
Python处理XML格式数据的方法详解
Mar 21 Python
LRUCache的实现原理及利用python实现的方法
Nov 21 Python
对Python3之方法的覆盖与super函数详解
Jun 26 Python
Spring Cloud Feign高级应用实例详解
Dec 10 Python
python numpy 矩阵堆叠实例
Jan 17 Python
python模式 工厂模式原理及实例详解
Feb 11 Python
python中threading和queue库实现多线程编程
Feb 06 Python
自己搭建resnet18网络并加载torchvision自带权重的操作
May 13 Python
忆童年!用Python实现愤怒的小鸟游戏
Jun 07 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/04/22 PHP
PHP防CC攻击实现代码
2011/12/29 PHP
一个简洁的PHP可逆加密函数(分享)
2013/06/06 PHP
php strrpos()与strripos()函数
2013/08/31 PHP
php进程(线程)通信基础之System V共享内存简单实例分析
2019/11/09 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
jquery cookie插件代码类
2009/05/26 Javascript
3Z版基于jquery的图片复选框(asp.net+jquery)
2010/04/12 Javascript
JavaScript验证Email(3种方法)
2015/09/21 Javascript
jquery获取所有选中的checkbox实现代码
2016/05/26 Javascript
nodejs中安装ghost出错的原因及解决方法
2017/10/23 NodeJs
Angular实现的table表格排序功能完整示例
2017/12/22 Javascript
vue 自定义全局方法,在组件里面的使用介绍
2018/02/28 Javascript
在vue项目中使用sass的配置方法
2018/03/20 Javascript
详解react-redux插件入门
2018/04/19 Javascript
javascript实现文本框标签验证的实例代码
2018/10/14 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
2019/08/20 Javascript
[31:01]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS Orenda
2014/05/23 DOTA
Python中的两个内置模块介绍
2015/04/05 Python
python实现在windows服务中新建进程的方法
2015/06/30 Python
Python3.X 线程中信号量的使用方法示例
2017/07/24 Python
Python自动化运维之IP地址处理模块详解
2017/12/10 Python
python 3.6.2 安装配置方法图文教程
2018/09/18 Python
python实现Dijkstra静态寻路算法
2019/01/17 Python
Python设计模式之简单工厂模式实例详解
2019/01/22 Python
详解Python数据分析--Pandas知识点
2019/03/23 Python
python实现机器人卡牌
2019/10/06 Python
Python实现基于socket的udp传输与接收功能详解
2019/11/15 Python
python获取引用对象的个数方式
2019/12/20 Python
python如何删除文件、目录
2020/06/23 Python
Perry Ellis官网:美国男士品味服装
2016/12/09 全球购物
阿联酋手表和配饰购物网站:Rivolishop
2019/11/25 全球购物
通信工程专业毕业生推荐信
2013/12/25 职场文书
中学生的1000字检讨书
2014/10/11 职场文书
女性健康知识讲座通知
2015/04/23 职场文书
《兰兰过桥》教学反思
2016/02/20 职场文书