多边形/矩形/圆将轮廓包围
1,minEnclosingCircle()&Circle()
2,boundRect[i]=boundRect()&rectangle()
3,minEnclosingCircle()&Circle()
1,圆/矩形/凸包分别画出轮廓例子
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
//初始化变量和随机值
Mat image(600, 600, CV_8UC3);
RNG&rng = theRNG();
//循环
while (1)
{
char key;//键值
//参数初始化
int count = (unsigned)rng % 100 + 3;//随机生成点数量
vector<Point> points;//点值
//随机生成坐标
for (int i = 0; i < count; i++)
{
Point point;
point.x = rng.uniform(image.cols / 4, image.cols * 3 / 4);
point.y = rng.uniform(image.rows / 4, image.rows * 3 / 4);//注意X,y分别赋值
points.push_back(point);
}
/*【1】凸包操作
//检测凸包
vector<int>hull;
convexHull(Mat(points), hull, true);
*/
/*【2】矩形包围操作
//对于给定2D点,寻找最小面积的包围矩形
RotatedRect box = minAreaRect(Mat(points));
Point2f vertex[4];
box.points(vertex);//把找到的点赋予vertex?
*/