OpenCV中的基础数据类型是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
下面我们主要介绍下OpenCV中常见的8大基础数据类型及其支持的操作。
1. Point类
作为OpenCV的基本类型,Point类可能是最简单的,虽然比较简单,但是熟悉opencv的你,并不一定对它很了解,特别是它的一些操作。
该类是基于一个基础模板结构而创建的,所以它能成为任何类型的点,比如整型,浮点型等。直接受Point类支持的操作如下:
2. Scalar类
Scalar是四维点类,与其他类型类似,它实际上与一个模板类相关,但访问它的别名返回一个该模板的实例。模板中,所有成员都是双精度浮点型数据。在计算机视觉算法中,Scalar类有一些与四元向量相关的特殊成员函数,下表列举了一些Scalar支持的操作:
3. size类
size类在实际操作中和Point类相似,而且可以与Point类互相转换,两者的主要区别是Point类的数据成员是x和y,而size类的数据成员是width和height。size类有三个别名,分别是Size,Size2i,Size2f,前面两个是等价的,表示整数大小,最后一个表示32位浮点大小。下表列出了size类支持的操作:
4. Rect类
Rect类包含Point类的成员x和y(代表矩形的左上角顶点)以及size类的成员width和heigth(代表矩形的宽和长)。下表是列出了Rect类所支持的操作: 另外Rect类还支持一系列的重载操作符,可用于计算两个矩形或者一个矩形等的各种各样的几何特性,如下:
5. RotatedRect类
RotatedRect类是一个包含一个中心点Point2f,一个大小Size2f和一个额外的float角度的容器。其中float的角度代表图形绕中心点旋转的角度。RotatedRect和Rect中有一个非常重要的不同点就是RotatedRect是以中心为原点,而Rect是以左上角为原点,下表列出了RotatedRect类所支持的操作:
6. 固定矩阵类
固定矩阵类是为编译时就已知维度的矩阵打造的,这也是称之为“固定”的原因。由于它内部的所有数据都是在堆栈上分配的,所以它们的分配和清除都很快。对固定类的操作运行很快,而且还在小矩阵上做过特殊的优化。通常,固定矩阵类实际上是一个模板,这个模板称为Matx<>,但独立的矩阵通常通过别名分配,这些别名的基础格式为Matx{1,2,…}{1,2,…}{f,d},其中数字可以是1到6之间的任何数。 其支持的操作有:
7. 固定向量类
固定向量类其实是从固定矩阵类派生而来的。固定向量类Vec其实就是一个列为1的固定矩阵类。为特定实例而准备好的别名格式如下:
Vec{2,3,4,5,6}{b,s,w,I,f,d},
最后一个字符的意义跟前面一样,其中w代表unsigned short,下表表示Vec支持的操作:
8. 复数类
OpenCV中的复数类和STL中的复数类模板complex<>不一样,但是可以互相转换。最大的区别在于成员的获取方式,STL类中的实部和虚部的获取方式通过成员函数real()和imag()获取,而在OpenCV中直接通过成员变量re和im获取。支持的操作如下:
和很多基本类型一样,复数类为重要的模板取了别名,如Complexf何Complexd分别表示单精度和双精度复数的别名。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/223879.html