C++ opencv如何实现几何图形绘制

发布时间:2022-05-13 09:23:11 作者:iii
来源:亿速云 阅读:247

C++ OpenCV如何实现几何图形绘制

OpenCV 是一个强大的计算机视觉库,广泛用于图像处理和计算机视觉任务。在 OpenCV 中,我们可以使用 C++ 编程语言来实现各种几何图形的绘制,例如直线、矩形、圆形、椭圆等。本文将介绍如何使用 OpenCV 的 C++ 接口来绘制这些几何图形。

1. 准备工作

在开始之前,确保你已经安装了 OpenCV 库,并且配置好了开发环境。你可以通过以下命令安装 OpenCV:

sudo apt-get install libopencv-dev

2. 创建图像

在绘制几何图形之前,我们需要创建一个空白图像。可以使用 cv::Mat 类来创建一个图像矩阵。

#include <opencv2/opencv.hpp>

int main() {
    // 创建一个 500x500 的空白图像,背景为白色
    cv::Mat image = cv::Mat::zeros(500, 500, CV_8UC3);
    image.setTo(cv::Scalar(255, 255, 255));

    // 在这里绘制几何图形

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

    return 0;
}

3. 绘制直线

使用 cv::line 函数可以在图像上绘制直线。该函数需要指定起点、终点、颜色和线宽等参数。

cv::line(image, cv::Point(50, 50), cv::Point(450, 50), cv::Scalar(0, 0, 255), 2);

4. 绘制矩形

使用 cv::rectangle 函数可以在图像上绘制矩形。该函数需要指定矩形的左上角和右下角坐标、颜色和线宽等参数。

cv::rectangle(image, cv::Point(100, 100), cv::Point(400, 400), cv::Scalar(0, 255, 0), 3);

5. 绘制圆形

使用 cv::circle 函数可以在图像上绘制圆形。该函数需要指定圆心、半径、颜色和线宽等参数。

cv::circle(image, cv::Point(250, 250), 100, cv::Scalar(255, 0, 0), -1);

6. 绘制椭圆

使用 cv::ellipse 函数可以在图像上绘制椭圆。该函数需要指定椭圆的中心、轴长、旋转角度、起始角度、结束角度、颜色和线宽等参数。

cv::ellipse(image, cv::Point(250, 250), cv::Size(150, 100), 45, 0, 360, cv::Scalar(0, 255, 255), 2);

7. 绘制多边形

使用 cv::polylines 函数可以在图像上绘制多边形。该函数需要指定多边形的顶点、是否闭合、颜色和线宽等参数。

std::vector<cv::Point> points = {cv::Point(100, 100), cv::Point(200, 50), cv::Point(300, 100), cv::Point(250, 200)};
cv::polylines(image, points, true, cv::Scalar(255, 0, 255), 2);

8. 显示图像

最后,使用 cv::imshow 函数显示绘制好的图像,并使用 cv::waitKey 函数等待用户按键。

cv::imshow("Image", image);
cv::waitKey(0);

9. 完整代码示例

#include <opencv2/opencv.hpp>

int main() {
    // 创建一个 500x500 的空白图像,背景为白色
    cv::Mat image = cv::Mat::zeros(500, 500, CV_8UC3);
    image.setTo(cv::Scalar(255, 255, 255));

    // 绘制直线
    cv::line(image, cv::Point(50, 50), cv::Point(450, 50), cv::Scalar(0, 0, 255), 2);

    // 绘制矩形
    cv::rectangle(image, cv::Point(100, 100), cv::Point(400, 400), cv::Scalar(0, 255, 0), 3);

    // 绘制圆形
    cv::circle(image, cv::Point(250, 250), 100, cv::Scalar(255, 0, 0), -1);

    // 绘制椭圆
    cv::ellipse(image, cv::Point(250, 250), cv::Size(150, 100), 45, 0, 360, cv::Scalar(0, 255, 255), 2);

    // 绘制多边形
    std::vector<cv::Point> points = {cv::Point(100, 100), cv::Point(200, 50), cv::Point(300, 100), cv::Point(250, 200)};
    cv::polylines(image, points, true, cv::Scalar(255, 0, 255), 2);

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

    return 0;
}

10. 总结

通过 OpenCV 的 C++ 接口,我们可以轻松地在图像上绘制各种几何图形。本文介绍了如何绘制直线、矩形、圆形、椭圆和多边形,并提供了完整的代码示例。希望这篇文章能帮助你更好地理解和使用 OpenCV 进行几何图形的绘制。

推荐阅读:
  1. OpenCV中几何形状识别与测量
  2. opencv3/C++绘制几何图形实例

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++ opencv

上一篇:C++ opencv如何利用grabCut算法实现抠图

下一篇:如何使用pytorch加载并读取COCO数据集

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》