Opencv常见图像格式Data Type及代码实例

作者:小蜗牛叽咕往前 时间:2021-05-20 07:49:08 

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向量数目永远是等于通道数目

来源:https://www.cnblogs.com/kekeoutlook/p/13509066.html

标签:Opencv,图像,格式,Data,Type
0
投稿

猜你喜欢

  • Python中的对象,方法,类,实例,函数用法分析

    2022-12-13 22:01:38
  • 事件触发列表与解说

    2013-07-19 11:17:12
  • Django分组聚合查询实例分享

    2023-08-07 21:44:16
  • list视图方式设计浅析

    2008-12-21 16:04:00
  • 如何使用ASP来读写注册表

    2007-09-20 13:08:00
  • WEB2.0网页制作标准教程(6)XHTML代码规范

    2007-12-13 13:03:00
  • python入门:这篇文章带你直接学会python

    2021-04-15 04:46:42
  • 使用正则表达式找出不包含特定字符串的条目

    2010-03-02 22:06:00
  • 如何利用pyinstaller打包Python程序为exe可执行文件

    2023-11-08 08:01:39
  • 动网论坛的asp 数据库连接代码

    2011-04-06 10:32:00
  • PHP设计模式之中介者模式浅析

    2023-05-25 04:07:16
  • 开发心得--写给想学Javascript朋友的一点经验之谈

    2009-02-25 11:42:00
  • 二级域名的解析指向ASP源码

    2007-10-19 19:13:00
  • python网络编程学习笔记(五):socket的一些补充

    2022-02-03 23:22:48
  • 用XML结合数据库,给服务器减负

    2007-10-31 09:40:00
  • 他们是如何不让我的Teleport和Webzip工作的?

    2010-07-14 21:06:00
  • SQL Server特殊磁带备份及恢复设计

    2009-01-21 14:39:00
  • 如何用表单的方式推送请求的信息?

    2010-06-16 09:47:00
  • 解决jupyter运行pyqt代码内核重启的问题

    2022-01-29 21:28:40
  • Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)

    2021-02-11 00:58:03
  • asp之家 网络编程 m.aspxhome.com