EmguCV C#3.1 - DrawPolyline(PointF [],Boolean,TColor,Int32)语法错误

时间:2016-11-30 09:00:22

标签: c# emgucv

可能这很容易,但我找不到方法。我正在尝试使用此代码绘制带浮点的ARC段:

System.Drawing.PointF [] points = new PointF [20];

background.DrawPolyline(points,false,new Bgr(0,0,0),1,Emgu.CV.CvEnum.LineType.FourConnected,0);

根据文件 http://www.emgu.com/wiki/files/3.0.0/document/html/53068d61-8b55-789f-5d3c-6ed2288f073e.htm

DrawPolyline方法可以使用PointF []作为输入。但是,当我输入它时,我收到错误。我正在使用EmguCV 3.1。此外,我尝试了“转到定义”,我在.cs文件中找不到此方法。有人知道为什么吗?我之所以从2.4改为3.1只是因为我可以在新版本中找到这种方法,但我仍然无法找到它。

我希望有人可以帮助我。如果有人知道绘制弧线的更好方法,也欢迎。 提前致谢

1 个答案:

答案 0 :(得分:1)

您没有说明背景是什么,但如果是图片,您可以在此处找到相关文档:Image.DrawPolyline或者如果是地图,请点击此处:Map.DrawPolyline

在文档中,您将看到不能使用PointF但必须使用System.Drawing.Point。以下是我一直在研究的应用程序的示例:

foreach (RControl r in _instruments.Values)
{
    PointF[] points = r.BackgroundRotatedRect.GetVertices();
    Bgra rectangleStroke = new Bgra(
        ((SolidColorBrush)r.RectangleStroke).Color.B,
        ((SolidColorBrush)r.RectangleStroke).Color.G,
        ((SolidColorBrush)r.RectangleStroke).Color.R,
        ((SolidColorBrush)r.RectangleStroke).Color.A);

    _recorderFrame.FrameImage.DrawPolyline(
                                Array.ConvertAll(points, new Converter<PointF, System.Drawing.Point>(PointFConverter.PointFToPoint)),
                                true,
                                rectangleStroke,
                                2,
                                Emgu.CV.CvEnum.LineType.FourConnected);
}

希望这有帮助, 道格