Point 模板类
opencv中的数据类型多由模板类进行创建,因此对于点类而言也是如此,支持各种类型如int,float等等的不同数据类型的point。
点类的开销相对是很少的,因为该类上并未定义太多操纵,在需要的时候它们可以转化为更为一般的类型,例如固定向量类or固定矩阵类(之后讨论)。主要有两种模板,一种是二维的点Point2x,一种是三维的点Point3x。
语句中最后的 x 所表达的意思是他是多选的,可选项如下:
基本操作函数
注意:这些类型可以被强制转换成old CV类型的CvPoint和CvPoint2D32f。如果一个point类的实例被强制转换成CvPoint,那么该值将被四舍五入。
Point 输出案例
代码如下:
#include <iostream> #include <math.h> #include <opencv2/opencv.hpp> #include<opencv2/highgui.hpp> #include <opencv2/highgui/highgui_c.h> using namespace std; using namespace cv; int main() { vector<Point2f> vp2f; vp2f.push_back(Point2f(2, 3)); vp2f.push_back(Point2f(4, 6)); vp2f.push_back(Point2f(8, 12)); cout << "【二维点向量】" << endl << vp2f << endl; vector<Point3f> vp3f(10); for (size_t i = 0; i < vp3f.size(); i++) { vp3f[i] = Point3f((float)i, (float)(i * i), (float)(i + 1)); } cout << "【三维点向量】" << endl << vp3f << endl; system("pause"); return 0; }
运行结果为: