OpenCV 的基本数据类型 OpenCV 提供了多种基本数据类型
虽然这些数据类型在 C 语言中不是基本类型,但结构都很简单,可将它们作为原子类型
可以在―…/OpenCV/cxcore/include‖目录下的cxtypes
h 文件中查看其详细定义
在这些数据类型中最简单的就是 CvPoint
CvPoint 是一个包含 integer 类型成员 x 和 y 的简单结构体
CvPoint 有两个变体类型:CvPoint2D32f 和 CvPoint3D32f
前者同样有两个成员x,y,但它们是浮点类型;而后者却多了一个浮点类型的成员 z
CvSize 类型与 CvPoint 非常相似,但它的数据成员是 integer 类型的width 和 height
如果希望使用浮点类型,则选用 CvSize 的变体类型CvSize2D32f
CvRect 类型派生于 CvPoint 和 CvSize,它包含 4 个数据成员:x,y,width 和 height
(正如你所想的那样,该类型是一个复合类型)
下一个(但不是最后一个)是包含 4 个整型成员的CvScalar 类型,当内存不是问题时,CvScalar 经常用来代替 1,2 或者 3 个实数成员(在这个情况下,不需要的分量被忽略)
CvScalar有一个单独的成员 val,它是一个指向 4 个双精度浮点数数组的指针
所有这些数据类型具有以其名称来定义的构造函数,例如 cvSize()
(构造函数通常具有与结构类型一样的名称,只是首字母不大写)
记住,这是 C 而不是 C++,所以这些构造函数只是 内 联 函 数, 它 们 首 先 提取 参 数列 表 , 然 后 返 回 被 赋 予 相 关 值 的结构
【31】 各数据类型的内联构造函数被列在表 3-1 中:cvPointXXX(),cvSize(),cvRect