不得不说,opencv的函数还是很丰富的,最近项目需求发现opencv还有minAreaRect这个函数,这个函数的功能就是:
@param points Input vector of 2D points, stored in std::vector\<\> or Mat */ CV_EXPORTS_W
RotatedRect minAreaRect( InputArray points );
可以看到输入的是点群,输出的是一个旋转方框,这个方框的特性就是以最小的面积包含了所有的点群。
这里用用到了RotatedRect这个类型,这个类型有一个方法:
/** returns 4 vertices of the rectangle @param pts The points array for storing rectangle vertices. The order is bottomLeft, topLeft, topRight, bottomRight. */
void points(Point2f pts[]) const;
这个方法的作用是将RotatedRect的四个顶点放到一个四个点的指针,比如
//定义一个存储以上四个点的坐标的变量 Point2f fourPoint2f[4];
然后这样就可以输出四个点,点的顺序看注释。