前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenCV中的图形绘制

OpenCV中的图形绘制

作者头像
OpenCV学堂
发布2018-04-04 10:52:50
1.7K0
发布2018-04-04 10:52:50
举报

OpenCV在Core模块中支持多种图形绘制与填充,方便开发者在图像对象识别与检测之后通过特定的图形轮廓加以显式表示。常见的几何形状包括线、矩形、圆形、椭圆,此外还支持文字显示。下面就让我们从API方法开始一步一步通过代码演示这些常见几何形状绘制与填充。首先我们要创建一张黑色背景图,代码如下:

画线 - cv::line API方法参数说明

参数src

表示线段绘制的目标图像, Mat类型数据

参数pt1

表示线段起始点屏幕坐标,Point类型数据

参数pt2

表示线段结束点屏幕坐标,Point类型数据

参数 color

表示绘制线段的颜色, Scalar类型

参数 thickness

默认为1,表示线段的粗细,值越大,画出来的线段越宽,int 类型。

参数 lineType

默认为8, 表示线段的每个像素点8连通方式提供渲染,此外值还可以是LINE_4或者LINE_AA其中LINE_AA表示反锯齿方式渲染绘制线段。

参数 shift

默认为0,表示线段,int类型

代码演示如下:

绘制与填充矩形 - cv::rectangle 参数说明:

参数img

表示矩形绘制对应的图像, 一般为Mat类型数据

参数rect

表示要绘制矩形的坐标与长宽, Rect类型

参数color

表示绘制使用的颜色,Scalar的向量与img的通道数目一直。

参数 thickness

默认为1,表示线段的粗细,值越大,画出来的线段越宽,int 类型。

参数 lineType

默认为8, 表示线段的每个像素点8连通方式提供渲染,此外值还可以是LINE_4或者LINE_AA其中LINE_AA表示反锯齿方式渲染绘制线段。

参数 shift

默认为0,表示线段,int类型

演示代码如下:

绘制圆与填充圆 - cv::circle

参数img

表示矩形绘制对应的图像, Mat类型

参数center

表示绘制圆的中心点坐标Point类型

参数 radius

表示绘制圆的半径大小,int类型

参数color

表示绘制使用的颜色,Scalar的向量与img的通道数目一直。

参数 thickness

默认为1,表示线段的粗细,值越大,画出来的线段越宽,int 类型。

参数 lineType

默认为8, 表示线段的每个像素点8连通方式提供渲染,此外值还可以是LINE_4或者LINE_AA其中LINE_AA表示反锯齿方式渲染绘制线段。

参数 shift

默认为0,表示线段,int类型

代码演示如下:

绘制与填充椭圆 - cv::ellipse

参数img

表示矩形绘制对应的图像, Mat类型

参数box

表示绘制的椭圆各个参数,包括角度、中心位置、大小,数据类型为RotateRect

参数color

表示绘制使用的颜色,Scalar类型。

参数 thickness

默认为1,表示线段的粗细,值越大,画出来的线段越宽,int 类型。

代码演示如下:

绘制与填充任意闭合区域

通过定义好的点,绘制直线,形成闭合区域,可以实现绘制任意形状闭合区域,同时通过OpenCV中泛洪填充API可以实现对任意闭合区域的颜色填充。演示代码如下:

完整的代码演示效果如下:

其中用的泛洪填充算法,小编打算另外一篇给大家专门扒一下这个算法本身,以及OpenCV中的源代码实现解析。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenCV学堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档