博客
关于我
C++ opencv小练习绘制点,直线,圆,椭圆等基本图像
阅读量:258 次
发布时间:2019-03-01

本文共 1451 字,大约阅读时间需要 4 分钟。

OpenCV图形绘制教程:通过代码实现多种图形

OpenCV是一个强大的图像处理库,能够帮助开发者快速实现图形绘制和图像操作。以下将通过OpenCV代码示例,详细说明如何绘制多种常见图形,包括直线、圆、椭圆和矩形。

1.1 初始化图像

首先,我们需要创建一个空的图像矩阵,并设置其背景颜色。以下代码示例:

Mat img = Mat::zeros(Size(800, 600), CV_8UC3);img.setTo(255);
  • Mat::zeros(Size(800, 600), CV_8UC3) 创建一个800x600像素、8位深度的彩色图像。
  • img.setTo(255) 将整个图像设置为白色背景。

1.2 绘制直线

OpenCV提供了line()函数用于绘制直线。以下是绘制两点之间直线的代码:

Point p1(100, 100);Point p2(758, 50);line(img, p1, p2, Scalar(0, 0, 255), 2);
  • Point p1(100, 100) 定义第一个点的坐标。
  • Point p2(758, 50) 定义第二个点的坐标。
  • line(img, p1, p2, Scalar(0, 0, 255), 2) 绘制连接两点的红色直线,线宽为2。

1.3 绘制圆

使用circle()函数绘制圆。以下是绘制圆的代码:

Point p(20, 20);circle(img, p, 1, Scalar(0, 255, 0), -1);
  • Point p(20, 20) 定义圆心坐标。
  • circle(img, p, 1, Scalar(0, 255, 0), -1) 绘制半径为1的绿色圆,-1 表示圆周不闭合。

1.4 绘制椭圆

通过ellipse()函数绘制椭圆。以下是绘制椭圆的代码:

Point center(100, 100);Size ellipseSize(90, 60);ellipse(img, center, ellipseSize, 30, 0, 360, Scalar(255, 255, 0), 3, 8);
  • Point center(100, 100) 定义椭圆中心坐标。
  • Size ellipseSize(90, 60) 定义椭圆的长宽。
  • ellipse(img, center, ellipseSize, 30, 0, 360, Scalar(255, 255, 0), 3, 8) 绘制黄色椭圆,角度为30度,线宽为3,线类型为8。

1.5 绘制矩形

使用rectangle()函数绘制矩形。以下是绘制矩形的代码:

Rect rect(250, 250, 120, 200);rectangle(img, rect, Scalar(0, 255, 255), 3);
  • Rect rect(250, 250, 120, 200) 定义矩形的坐标和尺寸。
  • rectangle(img, rect, Scalar(0, 255, 255), 3) 绘制 cyan 矩形,线宽为3。

1.6 显示图像

最后,使用imshow()函数显示图像:

imshow("画板", img);waitKey();
  • imshow("画板", img) 显示图像窗口标题为"画板"。
  • waitKey() 绘制完成后,按下任意键继续。

通过以上代码示例,可以轻松绘制多种常见图形。OpenCV提供了丰富的绘图功能,允许开发者快速实现复杂的图形操作。

转载地址:http://xvhv.baihongyu.com/

你可能感兴趣的文章
PageHelper常见问题
查看>>
SpringBoot中配置为开发模式,代码修改后不用重新运行
查看>>
springboot中pom.xml、application.yml、application.properties
查看>>
PageHelper:上手教程(最详细)
查看>>
PageOffice如何实现从零开始动态生成图文并茂的Word文档
查看>>
PageRank算法
查看>>
Paint类(画笔)
查看>>
paip. 调试技术打印堆栈 uapi print stack java php python 总结.
查看>>
paip.android 手机输入法制造大法
查看>>
paip.spring3 mvc servlet的配置以及使用最佳实践
查看>>
Palindrome Number leetcode java
查看>>
Palo Alto Networks Expedition 未授权SQL注入漏洞复现(CVE-2024-9465)
查看>>
Palo Alto Networks Expedition 远程命令执行漏洞(CVE-2024-9463)
查看>>
Palo Alto Networks PAN-OS身份认证绕过导致RCE漏洞复现(CVE-2024-0012)
查看>>
Panalog 日志审计系统 libres_syn_delete.php 前台RCE漏洞复现
查看>>
Springboot中@SuppressWarnings注解详细解析
查看>>
Panalog 日志审计系统 sprog_deletevent.php SQL 注入漏洞复现
查看>>
Panalog 日志审计系统 sprog_upstatus.php SQL 注入漏洞复现(XVE-2024-5232)
查看>>
Panalog 日志审计系统 前台RCE漏洞复现
查看>>
PANDA VALUE_COUNTS包含GROUP BY之前的所有值
查看>>