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

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

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

OpenCV是一个功能强大的计算机视觉库,它提供了很多方法和工具来处理和分析图像。在本文中,我们将学习如何在C++中使用OpenCV绘制椭圆。

安装OpenCV

在开始之前,您需要安装OpenCV。您可以从OpenCV官方网站(https://opencv.org/)下载和安装OpenCV。

包含OpenCV头文件

在编写您的代码之前,请确保包含必要的OpenCV头文件。以下是打开图像和绘制椭圆所需的OpenCV头文件:

#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
打开图像

在开始绘制椭圆之前,您需要打开一张图像。您可以使用OpenCV的imread函数打开图像。请确保将图像文件放置在当前工作目录中,并将图像文件路径传递给imread函数:

cv::Mat img = imread("image.png");
绘制椭圆

使用OpenCV的ellipse函数绘制椭圆。以下是绘制椭圆的函数:

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

其中:

  • img:要在其上绘制椭圆的图像
  • box:拟合椭圆的旋转矩形
  • color:绘制椭圆的颜色
  • thickness:线条的粗细
  • lineType:线条类型
  • shift:点坐标中的小数位数

以下是绘制椭圆的示例代码:

// 创建椭圆所在的旋转矩形
cv::RotatedRect ellipse_rect = cv::RotatedRect(cv::Point2f(200, 200), cv::Size(100, 50), 30);

// 在图像上绘制椭圆
cv::ellipse(img, ellipse_rect, cv::Scalar(0, 0, 255), 2);
显示图像

最后,使用OpenCV的imshow函数显示绘制椭圆后的图像:

cv::imshow("Ellipse Image", img);
cv::waitKey(0);
完整代码

下面是绘制椭圆的完整代码:

#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

int main()
{
    // 打开图像
    cv::Mat img = cv::imread("image.png");

    // 创建椭圆所在的旋转矩形
    cv::RotatedRect ellipse_rect = cv::RotatedRect(cv::Point2f(200, 200), cv::Size(100, 50), 30);

    // 在图像上绘制椭圆
    cv::ellipse(img, ellipse_rect, cv::Scalar(0, 0, 255), 2);

    // 显示图像
    cv::imshow("Ellipse Image", img);
    cv::waitKey(0);

    return 0;
}
示例图像

下面是绘制椭圆后的示例图像:

ellipse image