📜  在C++中使用OpenCV绘制椭圆(1)

📅  最后修改于: 2023-12-03 15:37:34.708000             🧑  作者: Mango

在C++中使用OpenCV绘制椭圆

简介

OpenCV是一个跨平台的计算机视觉库,提供了丰富的图像处理和计算机视觉算法。其中,绘制椭圆是一项很常见的操作。本文将介绍使用OpenCV在C++中绘制椭圆的方法。

准备工作

在开始绘制椭圆之前,需要安装OpenCV库并配置环境。建议使用CMake进行配置。

安装完成后,在代码中加入以下头文件:

#include <opencv2/opencv.hpp>
绘制椭圆

OpenCV提供了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:图像矩阵,即将椭圆绘制在哪个图像上;
  • center:椭圆中心坐标;
  • axes:椭圆主轴和次轴的长度;
  • angle:椭圆长轴与x轴的夹角,单位为度;
  • startAngle和endAngle:椭圆弧线的起始角和终止角,单位为度;
  • color:椭圆的颜色;
  • thickness:椭圆线条的宽度;
  • lineType:线条类型;
  • shift:坐标点小数点位数。

下面是一个绘制椭圆的例子:

#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;

int main()
{
    const int WIDTH = 500;
    const int HEIGHT = 500;

    // 创建一个黑色图像
    Mat img = Mat::zeros(Size(WIDTH, HEIGHT), CV_8UC3);

    // 定义椭圆参数
    Point center(WIDTH / 2, HEIGHT / 2);
    Size axes(WIDTH / 4, HEIGHT / 8);
    double angle = 45;
    double startAngle = 0;
    double endAngle = 360;

    // 绘制椭圆
    ellipse(img, center, axes, angle, startAngle, endAngle, Scalar(0, 255, 0), 2);

    // 显示图像
    imshow("Ellipse", img);
    waitKey(0);
    return 0;
}

运行程序,将会看到绘制的椭圆:

椭圆

结语

本文介绍了在C++中使用OpenCV绘制椭圆的方法。绘制椭圆是图像处理中很常见的操作,掌握该技能对于图像的处理和分析会大有帮助。