Convex Hull in CSharp

From Emgu CV: OpenCV in .NET (C#, VB, C++ and more)
Revision as of 03:31, 24 November 2010 by Inuxejiq (talk | contribs)
Jump to navigation Jump to search


Under Construction! Please Visit Reserve Page. Page Will Be Available Shortly


CLICK HERE


System Requirement

Component Requirement Detail
Emgu CV Version 1.5
Operation System Cross Platform

Source Code

<source lang="csharp">

  1. region Create some random points

Random r = new Random(); PointF[] pts = new PointF[200]; for (int i = 0; i < pts.Length; i++) {

  pts[i] = new PointF((float)(100 + r.NextDouble() * 400), (float)(100 + r.NextDouble() * 400));

}

  1. endregion

Image<Bgr, Byte> img = new Image<Bgr, byte>(600, 600, new Bgr(255.0, 255.0, 255.0)); //Draw the points foreach (PointF p in pts)

  img.Draw(new CircleF(p, 3), new Bgr(0.0, 0.0, 0.0), 1);

//Find and draw the convex hull using (MemStorage storage = new MemStorage()) {

  Stopwatch watch = Stopwatch.StartNew();
  PointF[] hull = PointCollection.ConvexHull(pts, storage, Emgu.CV.CvEnum.ORIENTATION.CV_CLOCKWISE).ToArray();
  watch.Stop();
  img.DrawPolyline(
      Array.ConvertAll<PointF, Point>(hull, Point.Round),
      true, new Bgr(255.0, 0.0, 0.0), 1);
  ImageViewer.Show(img, String.Format("Convex Hull Computed in {0} milliseconds", watch.ElapsedMilliseconds));

} </source>

Result

ConvexHullExample.png