数据结构类型
点:Point类
Point、Point2i、Point_<int>等价
Point2f、Point_<float>等价
用法:
//二维点 Point2f p(6,2); cout<<"p="<<endl<<p<<";"<<endl; //三维点 Point3f p3(8,2,0); cout<<"p3="<<endl<<p3<<";"<<endl; //定义输出存放着点的vector容器,以二维点为例 vector<Point2f> points(5);//5个点 for(size_t i=0;i<points.size();i++) points[i]=Point2f((float)(i*5),(float)(i%3));//横坐标5的倍数,纵坐标3的余数 cout<<"points="<<endl<<" "<<points<<";";
颜色:Scalar类
Scalar(b,g,r,alpha); 第四个参数不需要时可以不写
Scalar类的源头是Scalar_类,我们常用的Scalar其实就是Scalar_<double>,所以很多函数的参数输入可以是Mat也可以是Scalar。
尺寸:Size类
Size、Size2i、Size_<int>等价;Size_<float> 、Size2f等价
用法:Size(1,2) 宽1高2
矩形:Rect类
成员变量有x,y,width,height,即左上角坐标,矩形宽高
成员函数:Size(),area(),contains(Point)判断点是否在矩形内,inside(Rect)判断矩形是否在矩形内,tl()返回左上角坐标,br()返回右下角坐标
Rect r=r1&r2; 两矩形交集
Rect r=r1|r2; 两矩形并集
Rect rShift=r+point; 平移
Rect rScale=r+size; 缩放