OpenCV绘图函数(6)绘制椭圆函数ellipse()的使用

news/2024/10/20 14:32:20/
  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

画出一个简单的或粗的椭圆弧或者填充一个椭圆扇形。

函数 cv::ellipse 使用更多的参数可以画出椭圆轮廓、填充的椭圆、椭圆弧或填充的椭圆扇形。绘图代码使用一般参数形式。使用分段线性曲线来近似椭圆弧边界。如果你需要对椭圆渲染有更多的控制,你可以使用 ellipse2Poly 获取曲线,然后使用 polylines 进行绘制或使用 fillPoly 进行填充。如果你使用函数的第一个变体并且想要画出整个椭圆而不是弧线,传递 startAngle=0 和 endAngle=360。如果 startAngle 大于 endAngle,它们会被交换。下面的图解释了用于绘制蓝色弧线的参数含义。
在这里插入图片描述

椭圆弧的参数

函数原型1


void cv::ellipse
(InputOutputArray 	img,Point 	center,Size 	axes,double 	angle,double 	startAngle,double 	endAngle,const Scalar & 	color,int 	thickness = 1,int 	lineType = LINE_8,int 	shift = 0 
)		

参数1

  • 参数img 图像.
  • 参数center 椭圆的中心。
  • 参数axes 椭圆主轴的一半长度。
  • 参数angle 椭圆旋转角度(度)。
  • 参数startAngle 椭圆弧的起始角度(度)。
  • 参数endAngle 椭圆弧的结束角度(度)。
  • 参数color 椭圆的颜色。
  • 参数thickness 椭圆弧边线的厚度,如果为正数。否则,表示要绘制填充的椭圆扇形。
  • 参数lineType 椭圆边界类型。参见LineTypes。
  • 参数shift 中心坐标和轴值中的分数位数。

函数原型2

这是一个重载成员函数,提供方便之用。它与上述函数的不同之处仅在于它接受的参数

void cv::ellipse	
(InputOutputArray 	img,const RotatedRect & 	box,const Scalar & 	color,int 	thickness = 1,int 	lineType = LINE_8 
)		

参数2

  • 参数img 图像.
  • 参数box 通过RotatedRect表示的备选椭圆形式。这意味着函数将在旋转矩形内绘制一个内切椭圆。
  • 参数color 椭圆的颜色。
  • 参数thickness 椭圆轮廓的宽度,如果为正值,则表示线条的厚度;如果为负值,则表示要绘制填充的椭圆扇形。
  • 参数lineType 椭圆边界类型。参见LineTypes。

代码示例

#include <opencv2/opencv.hpp>
#include <iostream>int main()
{// 创建一个空白图像cv::Mat image = cv::Mat::zeros(400, 400, CV_8UC3);// 设置椭圆的参数cv::Point center(200, 200); // 椭圆中心cv::Size axes(100, 50);     // 椭圆的轴长double angle = 0;           // 椭圆旋转角度double startAngle = 0;      // 开始角度double endAngle = 360;      // 结束角度cv::Scalar color(0, 0, 255); // 颜色 (BGR)int thickness = 2;          // 线条粗细int line_type = cv::LINE_8; // 线条类型// 绘制椭圆cv::ellipse(image, center, axes, angle, startAngle, endAngle, color, thickness, line_type);// 显示图像cv::namedWindow("Ellipse Drawing", cv::WINDOW_NORMAL);cv::imshow("Ellipse Drawing", image);cv::waitKey(0);return 0;
}

运行结果

在这里插入图片描述


http://www.ppmy.cn/news/1519474.html

相关文章

SQL慢查询优化方式

目录 一、SQL语句优化 1.避免使用 SELECT * &#xff0c;而是具体字段 2.避免使用 % 开头的 LIKE 的查询 3.避免使用子查询&#xff0c;使用JOIN 4.使用EXISTS代替IN 5.使用LIMIT 1优化查询 6.使用批量插入、优化INSERT操作 7.其他方式 二、SQL索引优化 1.在查询条件…

python:浅谈yolov10对比yolov5的方便之处

文章目录 前言一、环境配置二、数据标注三、配置文件四、训练数据五、数据预测总结 前言 ‌YOLOv10‌是YOLO系列的最新版本&#xff0c;旨在提高推理速度并减少计算开销。它是实时目标检测领域中的一项重要进展&#xff0c;通过移除非最大值抑制(NMS)并采用双重标签分配、空间…

Cesium 台湾省白膜数据渲染

Cesium 台湾省白膜数据渲染 效果图

一份详细的EdgeOne安全配置指南与教程

前言 腾讯云EdgeOne&#xff0c;作为一款集成CDN加速和全方位安全防护于一体的产品&#xff0c;不仅可以确保用户访问的流畅与快速响应&#xff0c;还能有效抵御DDoS攻击、WEB攻击等网络攻击&#xff0c;本文就以上功能详细介绍如何配置及应用&#xff0c;希望可以让大家直观感…

加密与安全_前后端通过AES-CBC模式安全传输数据

文章目录 Pre概述前端加密是否有意义&#xff1f;环境准备加密方法、MODE和PADDING的选择前端后端应用&#xff1a;从传输到解密的全过程安全性增强动态生成密钥和初始向量1. 前端&#xff1a;动态生成密钥和IV2. 后端&#xff1a;解密动态密钥和IV 结语 Pre 加密与安全_解密A…

SprinBoot+Vue学生选课微信小程序的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue3.6 uniapp代码 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平…

[M二叉树] lc236. 二叉树的最近公共祖先(dfs+二叉搜索树)

文章目录 1. 题目来源2. 题目解析 1. 题目来源 链接&#xff1a;236. 二叉树的最近公共祖先 相似题&#xff1a; [M二叉树] lc235. 二叉搜索树的最近公共祖先(dfs二叉搜索树) 题单&#xff1a; 【题单】链表、二叉树与一般树&#xff08;前后指针/快慢指针/DFS/BFS/直径/…

这才是老板喜欢的数据分析简历

速创猫今天给大家分享的是应届毕业生数据分析简历优化案例&#xff0c;希望对大家求职有帮助。速创猫总结了以下七条简历制作干货&#xff0c;希望对大家有帮助&#xff1a; 明确目标岗位&#xff1a;在简历的开头&#xff0c;清晰地标明你申请的职位和行业&#xff0c;让HR一眼…