=======================================================================
记录一下,要不确实容易忘记。
=======================================================================
文章目录
简介
暂且将其称呼为:点类
作为opencv的基础类型,point类可能是最简单的。它的实现基于一个基础模板结构(由自己的模板派生而来),也可以从固定向量类(cv::Vec<>)转换得到。
cv::Point类与固定向量类之间最大的不同是他们的成员是通过名称变量访问的(mypoint.x,mypoint.y等)而不是通过下标访问(myvec[0],myvec[1]等)。和cv::Vec<>一样,Point类是通过别名调用作为一个正确模板的实例。这些别名可以是cv::Point2i,cv::Point2f,cv::Point2d或cv::Point3i,cv::Point3f,cv::Point3d。
由于它们是基于一个基础模板结构,所以它们可以成为任何类型的点,如整型和浮点型等。这里实际上由两个这样的模板,一个是给二维点提供的,另一个是给三维点提供的。Point类的巨大优势在于它们简单且开销小。原生上并没有对它们定义很多操作,但它们可以转换成更广义的类型,比如在需要的时候可以转换为固定向量类或者是固定矩阵类。
大多数程序中,Point类是通过类似于cv::Point2i和cv::Point3f这类别名来实例化的,这些别名的最后一个字母表示构造该点所需要的原语(b是一个无符号字符,s是一个短整型,i是一个32位整型,f是一个32位浮点数,d是一个64位浮点数)