Difference between revisions of "Convex Hull in CSharp"

From Emgu CV: OpenCV in .NET (C#, VB, C++ and more)
Jump to: navigation, search
m (Undo revision 1271 by Sanders Dowdy (talk))
Line 40: Line 40:
 
== Result ==
 
== Result ==
 
[[image:ConvexHullExample.png]]
 
[[image:ConvexHullExample.png]]
[http://resume-online.com/consultant.php consultant resume]
 

Revision as of 13:51, 14 February 2012

System Requirement

Component Requirement Detail
Emgu CV Version 1.5
Operation System Cross Platform

Source Code

#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));
}
#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));
}

Result

ConvexHullExample.png