OpenCV中ellipse与circle函数参数详解及代码示例
本文详细解析OpenCV中ellipse和circle函数的核心参数,包括中心点、轴长、半径、颜色及线型等。通过C++代码示例展示如何绘制不同角度的椭圆和实心圆,帮助开发者快速掌握图像几何图形的绘制方法。
OpenCV椭圆绘制函数ellipse详解
ellipse函数用于在图像上绘制椭圆,其函数原型为:void 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);
该函数将椭圆绘制到指定的图像img中。椭圆的中心位置由Point类型的center参数确定,其大小由Size类型的axes参数定义,表示椭圆外接矩形的大小。angle参数指定椭圆的旋转角度。绘制范围由startAngle和endAngle控制,通常设置为0到360度以绘制完整椭圆。
颜色参数color采用Scalar类型,格式为(x, y, z),例如蓝色可表示为Scalar(255, 0, 0)。线宽由thickness参数控制,默认值为1。线型lineType默认为8,表示使用8联通线型进行绘制。
OpenCV圆形绘制函数circle详解
circle函数用于在图像上绘制圆形,其函数原型为:void circle(InputOutputArray img, Point center, int radius, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0);
img参数指定输入的图像对象,所有绘制操作均作用于该图像。
center参数定义圆心的坐标位置,类型为Point。
radius参数指定圆的半径大小,类型为int。
color参数为Scalar类型,用于指定圆的颜色。例如,蓝色可表示为Scalar(255, 0, 0)。
thickness参数控制线条的宽度,默认值为1。若设置为负值,则表示绘制实心圆。
lineType参数指定线条的类型,默认为8联通线型(LINE_8)。
C++代码实现示例
#include<iostream>
#include<opencv2/opencv.hpp>
using namespace cv;
using namespace std;
#define WINDOW_NAME1 "绘制图1"
#define WINDOW_NAME2 "绘制图2"
#define WINDOW_WIDTH 600 //定义窗口大小
string image = "C:\\Users\\asus\\Pictures\\Saved Pictures\\123.jpg";
void DrawEllipse(Mat img, double angle);
void DrawFi1ledCirc1e(Mat img, Point center);
int main()
{
Mat atomImage = Mat::zeros(WINDOW_WIDTH, WINDOW_WIDTH, CV_8UC3);
Mat rookImage = Mat::zeros(WINDOW_WIDTH, WINDOW_WIDTH, CV_8UC3);
//绘制椭圆
DrawEllipse(atomImage, 90);
DrawEllipse(atomImage, 0);
DrawEllipse(atomImage, 45);
DrawEllipse(atomImage, -45);
//绘制圆心
DrawFi1ledCirc1e(atomImage, Point(WINDOW_WIDTH / 2,WINDOW_WIDTH / 2));
imshow(WINDOW_NAME1, atomImage);
waitKey(0);
return 0;
}
void DrawEllipse(Mat img, double angle) {
int thickness = 2;
int lineType = 8;
ellipse(img, Point(WINDOW_WIDTH / 2, WINDOW_WIDTH / 2),
Size(WINDOW_WIDTH / 4, WINDOW_WIDTH / 16), angle, 0, 360, Scalar(255, 129, 0),
thickness, lineType);
}
void DrawFi1ledCirc1e(Mat img, Point center) {
int thickness = -1;
int lineType = 8;
circle(img, center, WINDOW_WIDTH / 32, Scalar(0, 0, 255), thickness, lineType);
}

总结
以上介绍了OpenCV中绘制圆形circle函数和椭圆ellipse函数的基本用法及参数说明。希望本文能帮助您更好地使用OpenCV进行图像处理。如有任何疑问,欢迎留言讨论。感谢您的支持!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













