OpenCV结构分析与形状描述符(20)计算一个包围给定点集的最小外接圆函数minEnclosingCircle()的使用

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

找到一个包围二维点集的最小面积的圆。

该函数使用迭代算法来寻找一个二维点集的最小外接圆。这意味着函数将会通过反复逼近的过程来计算出能够包围所有给定点且面积最小的圆。

minEnclosingCircle 是 OpenCV 库中的一个函数,用于计算一个包围给定点集的最小外接圆。这个函数非常有用,尤其是在计算机视觉和图像处理中,当需要找到一组点的几何中心及其覆盖半径时。

函数原型

cpp 复制代码
void cv::minEnclosingCircle	
(
	InputArray 	points,
	Point2f & 	center,
	float & 	radius 
)		

参数

  • 参数points 输入的二维点向量,存储在 std::vector<> 或 Mat 中。
  • 参数center 输出的圆的中心。
  • 参数radius 输出的圆的半径。

代码示例

cpp 复制代码
include <opencv2/opencv.hpp>
#include <vector>

int main()
{
    // 创建一个空白的图像
    cv::Mat image = cv::Mat::zeros( 300, 300, CV_8UC3 );

    // 构造一个包含多个点的向量
    std::vector< cv::Point2f > points;
    points.push_back( cv::Point2f( 100, 100 ) );
    points.push_back( cv::Point2f( 200, 100 ) );
    points.push_back( cv::Point2f( 150, 150 ) );
    points.push_back( cv::Point2f( 100, 200 ) );
    points.push_back( cv::Point2f( 200, 200 ) );

    // 定义输出变量
    cv::Point2f center;
    float radius;

    // 计算最小外接圆
    cv::minEnclosingCircle( points, center, radius );

    // 绘制点集
    for ( const auto& pt : points )
    {
        cv::circle( image, pt, 3, cv::Scalar( 0, 255, 0 ), -1 );  // 绘制绿色的小圆圈表示点
    }

    // 绘制最小外接圆
    cv::circle( image, center, static_cast< int >( radius ), cv::Scalar( 0, 0, 255 ), 2 );  // 绘制红色的外接圆

    // 显示图像
    cv::imshow( "Min Enclosing Circle", image );
    cv::waitKey( 0 );

    return 0;
}

运行结果

相关推荐
网络精创大傻15 分钟前
在 AWS 上启动您的 AI 代理:Bedrock、Lambda 和 API 网关
人工智能·云计算·aws
说私域21 分钟前
链动2+1模式、AI智能名片与S2B2C商城小程序:破解直播电商流量转化困局的创新路径
人工智能·小程序
想暴富,学技术41 分钟前
AI提示词学习基础(一)
人工智能·学习
萤丰信息1 小时前
智慧园区:数字中国的“微缩实验室”如何重构城市未来
大数据·人工智能·科技·安全·重构·智慧园区
菠菠萝宝1 小时前
【AI应用探索】-7- LLaMA-Factory微调模型
人工智能·深度学习·大模型·llm·nlp·attention·llama
大模型真好玩2 小时前
低代码Agent开发框架使用指南(七)—Coze 数据库详解
人工智能·agent·coze
唐兴通个人2 小时前
金融保险银行营销AI数字化转型培训讲师培训老师唐兴通讲金融银保团队险年金险市场销售
大数据·人工智能
视界先声2 小时前
AIDAv2:重新定义DeFi的AI驱动金融基础设施
人工智能·金融
焦糖码奇朵、2 小时前
移动通信网络建设-实验2:5G站点选型与设备部署
网络·数据库·人工智能·5g·信号处理·基带工程
l1t2 小时前
把ITPUB newkid先生编写的Oracle语法数独求解SQL改写成DuckDB
数据库·人工智能·sql·oracle·duckdb