OpenCV绘图函数(7)从一个椭圆定义中提取出多边形的顶点坐标函数ellipse2Poly()的使用

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

算法描述

近似一个椭圆弧为一个多边形线。

函数 ellipse2Poly 计算近似指定椭圆弧的多边形线的顶点。它被 ellipse 函数所使用。如果 arcStart 大于 arcEnd,它们会被交换。

函数原型1

cpp 复制代码
void cv::ellipse2Poly
(
	Point 	center,
	Size 	axes,
	int 	angle,
	int 	arcStart,
	int 	arcEnd,
	int 	delta,
	std::vector< Point > & 	pts 
)		

参数1

  • 参数center 弧的中心。
  • 参数axes 椭圆主轴长度的一半。详情参见椭圆部分。
  • 参数angle 椭圆的旋转角度(度数)。详情参见椭圆部分。
  • 参数arcStart 椭圆弧的起始角度(度数)。
  • 参数arcEnd 椭圆弧的结束角度(度数)。
  • 参数delta 相邻折线顶点之间的角度。它定义了近似精度。
  • 参数pts 输出的折线顶点向量。

函数原型2

这是重载的成员函数,为方便提供。它与上面的函数仅在所接受的参数方面有所不同。

cpp 复制代码
oid cv::ellipse2Poly	
(
	Point2d 	center,
	Size2d 	axes,
	int 	angle,
	int 	arcStart,
	int 	arcEnd,
	int 	delta,
	std::vector< Point2d > & 	pts 
)		

参数2

  • 参数center 弧的中心。
  • 参数axes 椭圆主轴长度的一半。详情参见椭圆部分。
  • 参数angle 椭圆的旋转角度(度数)。详情参见椭圆部分。
  • 参数arcStart 椭圆弧的起始角度(度数)。
  • 参数arcEnd 椭圆弧的结束角度(度数)。
  • 参数delta 相邻折线顶点之间的角度。它定义了近似精度。
  • 参数pts 输出的折线顶点向量。

代码示例

近似一个椭圆弧并将其绘制到图像上:

cpp 复制代码
#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 = 30;          // 椭圆旋转角度
    double arcStart = 0;        // 起始角度
    double arcEnd = 180;        // 结束角度
    double delta = 5;           // 角度增量
    std::vector<cv::Point> pts; // 输出的多边形顶点向量

    // 使用 ellipse2Poly 函数计算椭圆弧的顶点
    cv::ellipse2Poly(center, axes, angle, arcStart, arcEnd, delta, pts);

    // 绘制近似的椭圆弧
    cv::polylines(image, pts, false, cv::Scalar(0, 0, 255), 2, cv::LINE_8);

    // 显示图像
    cv::namedWindow("Ellipse Arc Drawing", cv::WINDOW_NORMAL);
    cv::imshow("Ellipse Arc Drawing", image);
    cv::waitKey(0);

    return 0;
}

运行结果

相关推荐
江畔柳前堤2 小时前
roLabelImg 详细安装教程
开发语言·人工智能·后端·云原生
阿里云大数据AI技术2 小时前
分链路差异化设计的DSP准实时数仓|钛动科技基于阿里云实时计算 Flink 版 + DLF Paimon + EMR Serverless StarRocks 的实践
人工智能·flink
陕西企来客2 小时前
2026年7月AI智能搜索曝光趋势研判
大数据·人工智能·机器学习·ai智能搜索曝光
阿里云大数据AI技术3 小时前
从算力到智能体,面向 Agentic AI 的基础设施演进
人工智能·agent
hangyuekejiGEO3 小时前
GEO技术服务选型指南
大数据·人工智能·python
阿里云大数据AI技术3 小时前
EMR Serverless Spark AI Function 的双维降本实践
人工智能·sql·spark
维基框架4 小时前
GitHub源码处理提速 一趟扫描反而更慢
人工智能·github
冬奇Lab4 小时前
代码库知识库系列(05):向量检索 vs 知识图谱——加了调用图并没有变更好
人工智能
AKAMAI4 小时前
你的源服务器可能是你做出的最昂贵决定
运维·人工智能·云计算
冬奇Lab4 小时前
【无标题】
人工智能·开源