当前位置: 首页 > 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;
}

测试效果

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

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

http://www.lryc.cn/news/366013.html

相关文章:

  • 大小堆运用巧解数据流的中位数
  • AI能力边界不断扩展,将对国家安全产生深远影响
  • 【UnityShader入门精要学习笔记】第十六章 Unity中的渲染优化技术 (上)
  • GPT-4o:免费且更快的模型
  • docker部署fastdfs
  • 【劲舞团game】
  • Day15—图像爬虫与简单处理
  • Rust基础学习-Rust中的文件操作
  • Activator.CreateInstance 与 Type.InvokeMember的区别
  • Java18+​App端采用uniapp+开发工具 idea hbuilder智能上门家政系统源码,一站式家政服务平台开发家政服务
  • 【MySQL】探索 MySQL 的 GROUP_CONCAT 函数
  • SpringBoot整合RabbitMQ (持续更新中)
  • 瑞鑫RK3588 画中画 OSD 效果展示
  • 【全开源】防伪溯源一体化管理系统源码(FastAdmin+ThinkPHP+Uniapp)
  • 自然语言处理:第三十三章FILCO:过滤内容的RAG
  • js:flex弹性布局
  • Pytorch常用函数用法归纳:创建tensor张量
  • WPF前端:一个纯Xaml的水平导航栏
  • 谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)
  • STM32项目分享:智能家居(机智云)系统
  • 游戏盾之应用加速,何为应用加速
  • Java 基础面试题
  • Nginx 1.26.0 爆 HTTP/3 QUIC 漏洞,建议升级更新到 1.27.0
  • uniadmin引入iconfont报错
  • Vue3【三】 使用TS自己编写APP组件
  • 数字IC后端物理验证PV | TSMC 12nm Calibre Base Layer DRC案例解析
  • Echarts 在指定部分做文字标记
  • 如何发布自己的npm插件包
  • AI和机器人引领新一轮农业革命
  • 【Kubernetes】三证集齐 Kubernetes实现资源超卖(附镜像包)