Opencv常见图像格式DataType的使用方法-创新互联

Opencv常见图像格式Data Type的使用方法?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

十载的皋兰网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整皋兰建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“皋兰网站设计”,“皋兰网站推广”以来,每个客户项目都认真落实执行。

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 class Vec : public Matx<_Tp, n, 1> {...};

typedef Vec Vec2b;
typedef Vec Vec3b;
typedef Vec Vec4b;

typedef Vec Vec2s;
typedef Vec Vec3s;
typedef Vec Vec4s;

typedef Vec Vec2i;
typedef Vec Vec3i;
typedef Vec Vec4i;

typedef Vec Vec2f;
typedef Vec Vec3f;
typedef Vec Vec4f;
typedef Vec Vec6f;

typedef Vec Vec2d;
typedef Vec Vec3d;

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

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联网站建设公司,的支持。


当前题目:Opencv常见图像格式DataType的使用方法-创新互联
分享链接:http://ybzwz.com/article/dsihoo.html