当前位置: 首页 > news >正文

OpenCV-最小外接圆cv::minEnclosingCircle

作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

函数原型

void minEnclosingCircle(InputArray points, Point2f& center, float& radius);

参数说明

  1. InputArray类型的points,输入点集,用于拟合外接圆。
  2. Point2f类型的center,拟合圆的中心点。
  3. float类型的radius,拟合圆的半径。

测试代码

#include <opencv2/opencv.hpp>
#include <iostream>using namespace cv;
using namespace std;int main() {// 创建一个黑色背景的图像Mat image(400, 400, CV_8UC3, Scalar(0, 0, 0));// 定义五边形的顶点vector<Point> vertices;vertices.push_back(Point(200, 50));vertices.push_back(Point(100, 150));vertices.push_back(Point(150, 300));vertices.push_back(Point(250, 300));vertices.push_back(Point(300, 150));// 在图像上绘制五边形const Point* points[1] = { &vertices[0] };int numPoints[] = { vertices.size() };polylines(image, points, numPoints, 1, true, Scalar(0, 255, 0), 2);// 将图像转换为灰度图Mat gray;cvtColor(image, gray, COLOR_BGR2GRAY);// 对灰度图进行模糊处理,以便更好地检测边缘GaussianBlur(gray, gray, Size(5, 5), 0);// 使用Canny边缘检测算法检测边缘Mat edges;Canny(gray, edges, 50, 150);// 寻找轮廓vector<vector<Point>> contours;findContours(edges, contours, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE);// 计算最小外接圆并绘制Mat result = image.clone();for (size_t i = 0; i < contours.size(); i++) {Point2f center;float radius;minEnclosingCircle(contours[i], center, radius);circle(result, center, (int)radius, Scalar(255, 255, 255), 2);}// 显示结果imshow("Ori", image);imshow("Min Enclosing Circle", result);waitKey(0);return 0;
}

测试效果

       测试代码中,我人为定义了一个五边形,用函数执行后得到其最小外接圆。

       如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!

相关文章:

OpenCV-最小外接圆cv::minEnclosingCircle

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 函数原型 void minEnclosingCircle(InputArray points, Point2f& center, float& radius); 参数说明 InputArray类型的…...

大小堆运用巧解数据流的中位数

​​​​​​​​​​ 一、思路 我们将所有数据平分成两份&#xff0c;前面那一部分用小堆来存&#xff0c;后面的部分用大堆来存&#xff0c;这样我们就能立刻拿到中间位置的值。 如果是奇数个数字&#xff0c;那么我们就将把中间值放在前面的大堆里&#xff0c;所以会有两种…...

AI能力边界不断扩展,将对国家安全产生深远影响

文 | 中国信息安全测评中心 王欣 随着 ChatGPT 的发布及相关应用的落地&#xff0c;人工智能技术给全球各个行业带来了一波又一波冲击。GPT-4 多模态大型语言模型更是将人工智能的能力提升到新的高度&#xff0c;无论从技术先进性还是应用实践能力来看&#xff0c;此模型均可被…...

【UnityShader入门精要学习笔记】第十六章 Unity中的渲染优化技术 (上)

本系列为作者学习UnityShader入门精要而作的笔记&#xff0c;内容将包括&#xff1a; 书本中句子照抄 个人批注项目源码一堆新手会犯的错误潜在的太监断更&#xff0c;有始无终 我的GitHub仓库 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 文章目录 移动平台上…...

GPT-4o:免费且更快的模型

OpenAI GPT-4o 公告 OpenAI 推出了增强版 GPT-4 模型——OpenAI GPT-4o&#xff0c;用于支持 ChatGPT。首席技术官 Mira Murati 表示&#xff0c;更新后的模型速度更快&#xff0c;并在文本、视觉和音频处理方面有了显著提升。GPT-4o 将免费向所有用户开放&#xff0c;付费用户…...

docker部署fastdfs

我的镜像包地址 链接&#xff1a;https://pan.baidu.com/s/1j5E5O1xdyQVfJhsOevXvYg?pwdhcav 提取码&#xff1a;hcav docker load -i gofast.tar.gz拉取gofast docker pull sjqzhang/go-fastdfs启动gofast docker run -d --name fastdfs -p 8080:8080 -v /opt/lijia/lijia…...

【劲舞团game】

编写《劲舞团》这样的游戏代码是一个复杂的过程&#xff0c;涉及到游戏引擎的使用、图形渲染、物理模拟、音频处理、网络通信等多个方面。以下是一个非常简化的步骤&#xff0c;用于说明如何开始编写一个基于Unity引擎的简单舞蹈游戏&#xff1a; 1. 准备开发环境 下载并安装…...

Day15—图像爬虫与简单处理

图像爬虫是一种专门用于从互联网上下载图像的网络爬虫。除了文本内容,图像也是网站中的重要组成部分,它们可以用于多种目的,如图像识别、内容分析、数据备份等。 环境准备 首先,确保你的环境中已安装Python和必要的库。如果没有安装Pillow库,可以通过以下命令安装:pip in…...

Rust基础学习-Rust中的文件操作

文件结构 在Rust中&#xff0c;std::fs::File 结构体代表一个文件。它允许我们对文件执行读/写操作。文件 I/O 是通过提供与文件系统交互的功能的 std::fs 模块执行的。 File 结构体中的所有方法都返回std::io::Result的变体&#xff0c;或者简单地是 Result 枚举。这里会涉及…...

Activator.CreateInstance 与 Type.InvokeMember的区别

文章目录 一、使用 Activator.CreateInstance 创建实例1、使用 Activator.CreateInstance 的优点和缺点2、使用 Activator.CreateInstance 的代码示例 二、使用 Type.InvokeMember 创建实例1、使用 Type.InvokeMember 的优点和缺点2、使用 Type.InvokeMember 的代码示例 三、Ac…...

Java18+​App端采用uniapp+开发工具 idea hbuilder智能上门家政系统源码,一站式家政服务平台开发家政服务

Java18​App端采用uniapp开发工具 idea hbuilder智能上门家政系统源码&#xff0c;一站式家政服务平台开发 家政服务 家政服务是一个专为家政服务人员设计的平台&#xff0c;该平台旨在提供便捷、高效的工作机会&#xff0c;同时确保服务质量和客户体验。 以下是关于家政服务师…...

【MySQL】探索 MySQL 的 GROUP_CONCAT 函数

缘分让我们相遇乱世以外 命运却要我们危难中相爱 也许未来遥远在光年之外 我愿守候未知里为你等待 我没想到为了你我能疯狂到 山崩海啸没有你根本不想逃 我的大脑为了你已经疯狂到 脉搏心跳没有你根本不重要 &#x1f3b5; 邓紫棋《光年之外》 什么是 GRO…...

SpringBoot整合RabbitMQ (持续更新中)

RabbitMQ 官网地址&#xff1a;RabbitMQ: One broker to queue them all | RabbitMQ RabbitMQ 与 Erlang 版本兼容关系​ 3.13.0 26.0 26.2.x The 3.13 release series is compatible with Erlang 26. OpenSSL 3 support in Erlang is considered to be mature and ready for…...

瑞鑫RK3588 画中画 OSD 效果展示

这些功能本来在1126平台都实现过 但是迁移到3588平台之后 发现 API接口变化较大 主要开始的时候会比较费时间 需要找到变动接口对应的新接口 之后 就比较好操作了 经过几天的操作 已实现 效果如下...

【全开源】防伪溯源一体化管理系统源码(FastAdmin+ThinkPHP+Uniapp)

&#x1f50d;防伪溯源一体化管理系统&#xff1a;守护品质&#xff0c;追溯无忧 一款基于FastAdminThinkPHP和Uniapp进行开发的多平台&#xff08;微信小程序、H5网页&#xff09;溯源、防伪、管理一体化独立系统&#xff0c;拥有强大的防伪码和溯源码双码生成功能&#xff0…...

自然语言处理:第三十三章FILCO:过滤内容的RAG

文章链接: [2311.08377] Learning to Filter Context for Retrieval-Augmented Generation (arxiv.org) 项目地址: zorazrw/filco: [Preprint] Learning to Filter Context for Retrieval-Augmented Generaton (github.com) 在人工智能领域&#xff0c;尤其是在开放域问答和事…...

js:flex弹性布局

目录 代码&#xff1a; 1、 flex-direction 2、flex-wrap 3、justify-content 4、align-items 5、align-content 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewp…...

Pytorch常用函数用法归纳:创建tensor张量

1.torch.arange() (1)函数原型 torch.arange(start,end,step,*,out,dtype,layout,device,requires_grad) (2)参数说明: 参数名称参数类型参数说明startNumber起始值&#xff0c;默认值为0endNumber结束值&#xff0c;取不到&#xff0c;为开区间stepNumber步长值&#xff0…...

WPF前端:一个纯Xaml的水平导航栏

效果图&#xff1a; 代码&#xff1a; 1、样式代码&#xff0c;可以写在窗体资源处或者样式资源文件中 <Style x:Key"MenuRadioButtonStyle" TargetType"{x:Type RadioButton}"><Setter Property"FontSize" Value"16" />…...

谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)

Java项目《谷粒商城》架构师级Java项目实战&#xff0c;对标阿里P6-P7&#xff0c;全网最强 总时长 104:45:00 共408P 此文章包含第326p-第p331的内容 关注的问题 sentinel&#xff08;哨兵&#xff09; sentinel来实现熔断、降级、限流等操作 腾讯开源的tendis&#xff0c…...

Ai小程序入门03-项目初始化(小白入门:用AI一键生成小程序骨架,告别繁琐配置)

Ai小程序入门03-项目初始化&#xff08;小白入门&#xff1a;用AI一键生成小程序骨架&#xff0c;告别繁琐配置&#xff09;&#x1f4cc; 文章简介&#xff1a;环境搭好了&#xff0c;账号也拿到了&#xff0c;终于可以写出人生的第一行代码了&#xff01;传统的开发第一步需要…...

Browser-Use:基于LLM的智能浏览器自动化框架入门与实践

1. 项目概述&#xff1a;当AI学会“上网冲浪” 如果你和我一样&#xff0c;在过去的几年里尝试过各种RPA工具或者写爬虫脚本来处理网页上的重复性工作&#xff0c;那你一定对那种“脚本一跑就崩&#xff0c;网站一改版就废”的体验深有感触。我们总在幻想&#xff0c;要是能直…...

Logisim-evolution终极指南:从数字电路新手到硬件设计高手

Logisim-evolution终极指南&#xff1a;从数字电路新手到硬件设计高手 【免费下载链接】logisim-evolution Digital logic design tool and simulator 项目地址: https://gitcode.com/gh_mirrors/lo/logisim-evolution 你是否曾经对计算机内部的奥秘感到好奇&#xff1f…...

FakeLocation:你的手机位置自由指南,3个场景让位置掌控更简单

FakeLocation&#xff1a;你的手机位置自由指南&#xff0c;3个场景让位置掌控更简单 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation 还在为社交软件的位置限制烦恼吗&#xff1f…...

免费豆包大模型API代理部署指南:原理、实战与安全实践

1. 项目概述&#xff1a;一个免费且强大的大模型API代理 最近在折腾大语言模型应用开发的朋友&#xff0c;估计都绕不开一个核心痛点&#xff1a;API调用成本。无论是OpenAI的GPT系列&#xff0c;还是国内外的其他主流模型&#xff0c;按Token计费的模式在频繁调试和原型验证阶…...

深入浅出:用Grad-CAM解锁Swin Transformer的视觉注意力

1. 为什么需要理解Swin Transformer的视觉注意力&#xff1f; 当你第一次看到Swin Transformer在图像分类任务中表现出色时&#xff0c;可能会好奇它到底"看"到了图像的哪些部分。传统的卷积神经网络&#xff08;CNN&#xff09;通过局部感受野逐步提取特征&#xff…...

3种完整破解方案深度解析:Beyond Compare 5授权密钥生成技术实现指南

3种完整破解方案深度解析&#xff1a;Beyond Compare 5授权密钥生成技术实现指南 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen BCompare_Keygen是一个基于Python 3开发的Beyond Compare 5.x版…...

嵌入式开发中CHM文件的应用与优化

1. CHM文件在嵌入式开发中的核心价值CHM&#xff08;Compiled HTML Help&#xff09;作为微软推出的编译型帮助文档格式&#xff0c;在嵌入式开发领域已经服役超过20年。这种将HTML文档、索引和搜索功能打包成单一文件的格式&#xff0c;特别适合Keil MDK这类嵌入式开发环境的技…...

高速数字设计中的抖动:从概念到测量与抑制的完整指南

1. 项目概述&#xff1a;从“抖动”说起&#xff0c;高速数字设计的隐形杀手如果你在高速数字电路设计或者信号完整性测试领域摸爬滚打过几年&#xff0c;那么“抖动”这个词对你来说&#xff0c;绝对不是一个陌生的概念。它就像电路板上的幽灵&#xff0c;平时看不见摸不着&am…...

羽毛球正反手抽球

文章目录 引言 I 正手抽球 II 反手抽球 1. 准备与步法 2. 握拍与引拍 3. 挥拍与击球 4. 随挥与回动 引言 羽毛球正手抽球和反手抽球是两项重要的中前场技术。正手抽球强调侧身架拍、腰部转体带动发力,击球点保持在身体前方半米处,利用小臂内旋和食指挤压拍柄发力。反手抽球则…...