EMGUCV基础(4)

2019-04-17 15:37

Point point = new Point(10, 10); int x = point.X;//获得点的x坐标。 int y = point.Y;//获得点的y坐标。

PointF:表示二维坐标系下的点,以图像左上角为坐标原点,数据类型为单精度浮点类型。在System.Drawing命名空间中。

PointF和Point具有相同的用法,这边主要分析类型之间的相互转换。

Point系统可以默认转换为PointF类型。类似于Int类型可以转成Float类型。PointF类型转成Point类型这边可以使用函数Point结构体中的Truncate函数实现:

public static Point Truncate(PointF value);//把PointF类型转成Point类型。

Emgu Cv“点”结构类型介绍:

MCvPoint2D64f、MCvPoint3D32f、MCvPoint3D64f这个三个点均在Emgu.CV.Structure命名空间中。MCvPoint2D64f表示二维64位双精度浮点类型的点,MCvPoint3D32f表示三维32为单精度浮点类型的点。MCvPoint3D64f表三维64位双精度浮点类型的点。

查看结构类型的使用方法步骤如下:MCvPoint3D64f为例。

【如图2.1所示】→【右击选中的结构体,单击”转到定义“,或者鼠标选中结构体按下”F12“键。如图2.2所示】→【这样可以查看结构体的的信息(如图2.3所示)】查看类或者函数也是这些步骤。

图 2.1

图 2.2

图2.3 MCvPoint3D64f信息

常见创建方法:

public MCvPoint3D32f(float x, float y, float z)//指定坐标创建MCvPoint3D32f。 常见使用方法:

MCvPoint3D64f mcvPoint=new MCvPoint3D64f (0,0,0); 分别获得X,Y,Z坐标。 double x=mcvPoint.X; double y=mcvPoint.Y; double z=mcvPoint.Z;

MCvPoint2D64f信息如图2.4。MCvPoint2D64f的信息操作如上,这边不再列举。

图2.4 MCvPoint2D64f信息

双击每个类型前面的如图2.5所示。

符号,便可以查看官方给定的注释。

图 2.5

EmguCv“线段”结构类型介绍:

在EmguCv中主要有LineSegment2D 、LineSegment2DF、LineSegment3DF表示线段的数据类型,以Emgu.CV.Structure为命名空间。LineSegment2D表示2维平面整型数据结构的线段。LineSegment2DF表示2维平面单精度浮点数据结构的线段。LineSegment3DF表示3维空间单精度浮点数据结构的线段。以LineSegment2DF为例,解析使用方法。(也可以转到定义去了解更全面的介绍信息。如图2.6所示。)

常见创建方法:

public LineSegment2DF(PointF p1, PointF p2);指定坐标点创建 LineSegment2DF类型。 常见使用方法:

public PointF Direction { get; }//获得直线的方向。 public double Length { get; }//获得直线的夹角。 public PointF P1 { get; set; }//操作直线的首点。 public PointF P2 { get; set; }//操作图像的末点。

public double GetExteriorAngleDegree(LineSegment2DF otherLine);得到两直线的夹角。

public int Side(PointF point);//判断点坐标相对于直线的位置。 public float YByX(float x);//输入X点,输出所在直线的Y点。

图2.6 LineSegment2DF结构信息

Emgu Cv”圆形“结构类型介绍:

圆形主要包括圆和椭圆两种类型,以下分别介绍。以Emgu.CV.Structure为命名空间。

CircleF:圆

常见创建方法:

public CircleF(PointF center, float radius);//指定圆心半径创建 CircleF。 常见使用方法:

public double Area { get; }//获得圆的面积。

public PointF Center { get; set; }//操作圆的圆心。 public float Radius { get; set; }//操作圆的半径。

Ellipse:椭圆

常见创建方法:

public Ellipse(RotatedRect box2d);//指定带角度的矩阵创建Ellipse类型。

public Ellipse(PointF center, SizeF size, float angle)//指定参数创建Ellipse类型。

Emgu Cv”三角形“结构类型介绍:

EmguCv“三角形”主要包括Triangle2DF、Triangle2DF、Triangle3DF类型。以Emgu.CV.Structure为命名空间。

Triangle2DF:二维三角形。

常见创建方法:

public Triangle2DF(PointF v0, PointF v1, PointF v2);//指定三个顶点创建Triangle2DF三角形。 常见使用方法:

public double Area { get; }//获得三角形面积。 public PointF Centeroid { get; }//获得三角形重心。 //依次获得三角形的三个顶点坐标。

public PointF V0 { get; set; }; public PointF V1 { get; set; }; public PointF V2 { get; set; };

public PointF[] GetVertices();//直接获得三角形的三个顶点。

Triangle3DF:三维三角形:

常见创建方法:

public Triangle3DF(MCvPoint3D32f v0, MCvPoint3D32f MCvPoint3D32f v2);//指定三个MCvPoint3D32f类型的点创建

Triangle3DF。 常见使用方法:

public double Area { get; }//获得三角形面积。

public MCvPoint3D32f Centeroid { get; }//获得三角形重心。 //依次获得三角形的三个顶点坐标。 public MCvPoint3D32f V0 { get; set; }; Public MCvPoint3D32f V1 { get; set; }; public MCvPoint3D32f V2 { get; set; };

v1,

Emgu Cv和.Net”矩形“结构类型介绍:

我们将会用到三种类型来表示矩形。 RotatedRect:

RotatedRect:以 Emgu.CV.Structure为命名空间。表示带有旋转角度的矩形。

常见创建方法:

public RotatedRect(PointF center, SizeF size, float angle)//指定中心,大小,角度创建RotatedRect类型。

常见使用方法:

public Rectangle MinAreaRect();获得最小面积的外接矩形。 public float Angle;//获得角度。

public PointF Center;//获得中心点。

public SizeF Size;获得大小。

Rectangle:

Rectangle矩形不带旋转角度,或者旋转角度为0,命名空间为System.Drawing并非是EmguCv矩形。

常见创建方法:

public Rectangle(Point location, Size size);//指定左上角点和大小创建Rectangle类型。

public Rectangle(int x, int y, int width, int height);//指定左上角坐标和宽度,高度创建Rectangle。

常见使用方法:


EMGUCV基础(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017年Fenbi模考大赛第七季试题及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: