文章链接:https://blog.csdn.net/iracer/article/details/51292349
基本数据类型包括:
Vec
Scalar
Point
Size
Rect
1、Vec向量
Vec是一个模板类,主要用于存储数值向量。
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;
2、 Point点类
常用于表示2维坐标(x,y)。
CvPoint p = cvPoint(int x, int y);
CvPoint2D32f p = cvPoint2D32f(float x, float y);
CvPoint3D32f p = cvPoint3D32f(float x, float y, float z); //E.g.:
p.x=5.0;
p.y=5.0;
3、Scalar4元素向量类
Scalar()表示具有4个元素的数组,在OpenCV中被用来传递像素值,如果不使用第四个参数,则不需要写出来。需要注意的是,OpenCV中颜色值是BGR排列而不是传统上的RGB排列。
标量:
CvScalar
|-- double val[4]; //4D 向量
初始化函数:
// Example:
CvScalar s = cvScalar(double val0, double val1=0, double val2=0, double val3=0);
CvScalar s = cvScalar(20.0);
s.val[0]=20.0;
4、Size尺寸类
它包含宽、高2个成员:width , height还有一个有用的面积函数area()
矩形框大小(以像素为精度):
CvSize r = cvSize(int width, int height);
CvSize2D32f r = cvSize2D32f(float width, float height);
5、 Rect类
Rect是另一个用于定义2维矩形的模板类。它由两个参数定义:
矩形左上角坐标: (x,y)
矩形的宽和高: width, height
Rect可以用来定义图像的ROI区域。
矩形框的偏置和大小:
CvRect r = cvRect(int x, int y, int width, int height);