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, 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