正如我们所知道的,opencv中的数据类型多由模板类进行创建,因此对于点类而言也是如此,支持各种类型如int,float等等的不同数据类型的point。点类的开销相对是很少的,因为该类上并未定义太多操纵,在需要的时候它们可以转化为更为一般的类型,例如固定向量类or固定矩阵类(之后讨论)。主要有两种模板,一种是二维的点,一种是三维的点。
一般通过下面的语句来实例化point对象。
cv::Point2i
cv::Point3f
语句中最后的i,f等所表达的意思为:
b是unsigned character,
s是short integer,
i是32-bit integer,
f是32-bit floating-point number,
d是64-bit floating-point number.
下表是一些point类直接支持的操作。
操作 | 例子(3可以换成2) |
---|---|
默认构造方法 | cv::Point3i p; |
拷贝构造方法 | cv::Point3f p2( p1 ); |
带初始化值的构造方法 | cv::Point3d p( x0, x1, x2 ); |
转换到固定向量类 | (cv::Vec3f) p; |
成员访问 | p.x; p.y;p.z(2的时候没有z) |
点积操作 | float x |