类似C语言,OpenCV也有其基本的数据类型。可以将他们作为原子类型。
在OpenCV中的基本的数据类型大部分的定义都是以“类”的形式定义的——————这点理解很重要。我们知道,在定义一个变量时就开辟了内存空间。
(1)CvPoint类型
这是一个很简单的结构,用来定义一个坐标点,其中包括两个integer类型成员x和y,分别表示x轴和y轴的坐标值,
此外,CvPoint有两个扩展类型CvPoint2D32f 和CvPoint3D32f,其中CvPoint2D32f包括两个浮点型的变量x和y,CvPoint3D32f包含三个浮点型的变量x, y,z。定义如下:
typedef struct CvPoint
{
int x;
int y;
}
CvPoint;
typedef struct CvPoint2D32f
{
float x;
float y;
}
CvPoint2D32f;
typedef struct CvPoint3D32f
{
float x;
float y;
float z;
}
CvPoint3D32f;
(2)CvSize类型
与CvPoint非常相似,它包含两个整型的成员变量width和height,如果是浮点型,则选用CvSize2D32f。定义如下:
typedef struct CvSize{
int width; //宽
int height; //高
}CvSize;
(3)CvRect类型:
CvRect包含四个数据成员:x,y,width,height;可以这样理解,CvRect派生于CvPoint和CvSize类型
typedef struct CvRect{
int x; // x方向坐标
int y; // y方向坐标
int width; // 矩阵的宽度
int height; // 矩阵的高度
(4)CvScalar类型:
CvScalar类型包括四个整型成员,当内存不是问题时,CvScalar经常用来代替1,2或者3个实属成员(这种情况下,不需要的分量被忽略掉)另外,CvScalar有一个单独的成员val,val是一个指针,它指向4个双精度浮点数数组。定义如下:
typedef struct CvScalar{
double val[4];
} CvScalar;