Difference between revisions of "Minimum Area Rectangle in CSharp"
Jump to navigation
Jump to search
Breadwinka (talk | contribs) |
|||
Line 1: | Line 1: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== System Requirement == | == System Requirement == | ||
{| style="text-align:center" border="1px" cellpadding="10" cellspacing="0" | {| style="text-align:center" border="1px" cellpadding="10" cellspacing="0" | ||
Line 17: | Line 9: | ||
== Source Code == | == Source Code == | ||
− | + | <source lang="csharp"> | |
#region generate random points | #region generate random points | ||
System.Random r = new Random(); | System.Random r = new Random(); | ||
Line 30: | Line 22: | ||
#region draw the points and the box | #region draw the points and the box | ||
− | Image | + | Image<Bgr, byte> img = new Image<Bgr, byte>(400, 400, new Bgr(Color.White)); |
img.Draw(box, new Bgr(Color.Red), 1); | img.Draw(box, new Bgr(Color.Red), 1); | ||
foreach (PointF p in pts) | foreach (PointF p in pts) | ||
Line 36: | Line 28: | ||
#endregion | #endregion | ||
− | ImageViewer.Show(img, String.Format("Time used: {0} milliseconds", watch.ElapsedMilliseconds)); | + | ImageViewer.Show(img, String.Format("Time used: {0} milliseconds", watch.ElapsedMilliseconds));</source> |
== Result == | == Result == | ||
[[image:MinimumAreaRectangleExample.png]] | [[image:MinimumAreaRectangleExample.png]] |
Revision as of 06:05, 24 November 2010
System Requirement
Component | Requirement | Detail |
---|---|---|
Emgu CV | Version 2.0.1.0 | Available only from SVN |
Operation System | Cross Platform |
Source Code
#region generate random points
System.Random r = new Random();
int sampleCount = 100;
Ellipse modelEllipse = new Ellipse(new PointF(200, 200), new SizeF(90, 60), -60);
PointF[] pts = PointCollection.GeneratePointCloud(modelEllipse, sampleCount);
#endregion
Stopwatch watch = Stopwatch.StartNew();
MCvBox2D box = PointCollection.MinAreaRect(pts);
watch.Stop();
#region draw the points and the box
Image<Bgr, byte> img = new Image<Bgr, byte>(400, 400, new Bgr(Color.White));
img.Draw(box, new Bgr(Color.Red), 1);
foreach (PointF p in pts)
img.Draw(new CircleF(p, 2), new Bgr(Color.Green), 1);
#endregion
ImageViewer.Show(img, String.Format("Time used: {0} milliseconds", watch.ElapsedMilliseconds));