OpenCV基本图形绘制之椭圆

本文通过C++代码示例展示了如何使用OpenCV库绘制不同角度的椭圆。代码中定义了一个DrawEllipse函数,该函数接受一个角度参数,以窗口宽度的一半为中心,绘制椭圆。角度的正向是顺时针方向,负向为逆时针。文章还提到,通常设置角度范围为0到360度,超出此范围的图形将不会显示。在主函数中,程序绘制了45、60、80度的椭圆,帮助读者理解角度变化对图形形状的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 先上代码

#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/video.hpp>

using namespace cv;
using namespace std;

#define WINDOW_WIDTH 600//自定义窗口大小的宏 

void DrawEllipse(Mat img, double angle) {
	int thickness = 2;
	int lineType = 8;
	
	ellipse(img,
		Point(WINDOW_WIDTH / 2, WINDOW_WIDTH / 2),
		Size(WINDOW_WIDTH / 2, WINDOW_WIDTH / 4),
		angle,
		0,
		360,
		Scalar(255, 129, 0),
		thickness,
		lineType);

}

int main(int argc, char** argv)
{
	Mat img = Mat::zeros(WINDOW_WIDTH, WINDOW_WIDTH, CV_8UC3);
	//DrawEllipse(img, 90);
	//DrawEllipse(img, 0);
	DrawEllipse(img, 45);
	DrawEllipse(img, 60);
	DrawEllipse(img, 80);
	imshow("name1", img);
	waitKey(0);
	return 0;
}

效果

 函数解析

 传入的angle

 默认的水平右为0度,顺时针转动为正度数。逆时针转动为负度数。

扩展弧度

一般设置0-360,如果设置不是这个范围,那么在这个范围外的图形全部不显示。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值