EmguCV学习笔记 VB.Net 3.4 椭圆

 版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

教程VB.net版本请访问:
EmguCV学习笔记 VB.Net 目录-CSDN博客

教程C#版本请访问:EmguCV学习笔记 C# 目录-CSDN博客

笔者的博客网址:https://blog.csdn.net/uruseibest

教程配套文件及相关说明以及如何获得pdf教程和代码(博客上的教程内容会和pdf教程一致,教程中也会包含所有代码),请移步:EmguCV学习笔记

 

3.4 椭圆

使用Cvinvoke的Ellipse方法绘制椭圆,两种定义如下:

1、定义一:

Public Shared Sub Ellipse(img As Emgu.CV.IInputOutputArray, box As Emgu.CV.Structure.RotatedRect, color As Emgu.CV.Structure.MCvScalar, Optional thickness As Integer = 1, Optional lineType As Emgu.CV.CvEnum.LineType = 8, Optional shift As Integer = 0)

参数说明(其余参数请参考Line方法):

  1. box:一个旋转矩形。详细请参看【3.6 旋转矩形】

2、定义二:

Public Shared Sub Ellipse(img As Emgu.CV.IInputOutputArray, center As System.Drawing.Point, axes As System.Drawing.Size, angle As Double, startAngle As Double, endAngle As Double, color As Emgu.CV.Structure.MCvScalar, Optional thickness As Integer = 1, Optional lineType As Emgu.CV.CvEnum.LineType = 8, Optional shift As Integer = 0)

参数说明(其余参数请参考Line方法):

  1. center:椭圆的中心点,PointF类型。
  2. axes:椭圆的长轴和短轴的长度,SizeF类型。
  3. angle:椭圆的旋转角度,以度为单位。
  4. startAngle:椭圆的起始角度,以度为单位。
  5. endAngle:椭圆的结束角度,以度为单位。

例如以下代码:

CvInvoke.Ellipse(img, New PointF(100, 100), New SizeF(50, 80), 30, 0, 360, New MCvScalar(0, 0, 255), 2)

在图像上绘制了一个中心坐标为(100, 100),长轴为50,短轴为80,旋转角度为30度的红色椭圆,边框线宽为2个像素。

【代码位置:frmChapter3】Button4_Click

    '绘制椭圆形

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click

        Dim mcs1 As New MCvScalar(0, 0, 255)

        Dim mcs2 As New MCvScalar(0, 255, 0)

        '旋转20度的旋转矩形

        Dim rrec As New RotatedRect(New PointF(400, 300), New SizeF(200, 100), 20)

        '椭圆

        CvInvoke.Ellipse(mBg, rrec, mcs1, 3)

        '填充椭圆

        CvInvoke.Ellipse(mBg, rrec, mcs2, -1)

        '弧形,不旋转,弧形角度范围从100180

        CvInvoke.Ellipse(mBg, New Point(200, 300), New Size(100, 80), 0, 100, 180, mcs1, 3)

        '扇形,不旋转,扇形角度范围从100180

        CvInvoke.Ellipse(mBg, New Point(200, 300), New Size(100, 80), 0, 100, 180, mcs2, -1)

        '扇形,旋转60度,扇形角度范围从100180度,同上面的扇形做对比

        CvInvoke.Ellipse(mBg, New Point(100, 200), New Size(100, 80), 60, 100, 180, mcs2, -1)

        ImageBox1.Image = mBg

End Sub

运行后如下图所示:

 

图3-4 绘制椭圆、弧形、扇形

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.Net学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值