opencv学习(二十四)圆/矩形/多边形逼近并画轮廓minEnclosingCircle()&Circle()/boundRect[i]&rectangle()/approxPolyDP()&画轮廓

本文介绍了使用OpenCV进行轮廓处理的方法,包括通过minEnclosingCircle和Circle找到轮廓的最小包围圆,用boundRect和rectangle获取轮廓的矩形边界,并利用approxPolyDP进行多边形逼近。此外,还展示了如何分别和同时画出轮廓的圆、矩形和多边形。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多边形/矩形/圆将轮廓包围

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?
        */

        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值