#include<iostream>
#include<opencv2/opencv.hpp>
#include<vector>
using namespace cv;
using namespace std;
int main()
{
//先初始化变量
Mat srcImage(Size(600, 600), CV_8UC3, Scalar(0));
Mat saveImage;
srcImage.copyTo(saveImage);
RNG &rng = theRNG();
char key;
Point midPoint;
//hull 变量用来存储点的序号
vector<int> hull;
while (1)
{
//因为下面是入栈操作,所以,需要在循环内为变量分配空间,否则,栈内的数据无法出栈
vector<Point> points;
//首先确定随机点的坐标,以及随机点落定的范围
int count = (unsigned int)rng % 100 + 3;
for (int i = 0; i < count; i++)
{
//确定随机点的范围
midPoint.x = rng.uniform(srcImage.cols / 4, srcImage.cols * 3 / 4);
midPoint.y = rng.uniform(srcImage.rows / 4, srcImage.rows * 3 / 4);
points.push_back(midPoint);
}
//该用法结束后,hull将外围点的序号存放起来
convexHull(Mat(points), hull, true);
//绘制随机点
for (int i = 0; i < points.size(); i++)
{
circle(srcImage,
opencv3检测凸包convexHull函数-使用方法一
最新推荐文章于 2023-04-28 16:09:55 发布