@aeaeae1

Как распознать эллипс с#?

Доброго времени суток!У меня есть программа которая распознает круг.Как сделать так чтобы она распознала Эллипс.
if (_shapeChecker.IsCircle(_edgePoint, out _center, out _radius))
                {
                   
                    _g.DrawEllipse(_PictureboxPen, (float)(pictureBox1.Size.Width),
                                                   (float)(pictureBox1.Size.Height),
                                                   (float)10, (float)10);
 
                    // Настройка рисования контура обнаруженного объекта
                    Rectangle[] _rects = _blobCounter.GetObjectsRectangles();
                    Pen _pen = new Pen(Color.Green, ipenWidth);
                    string _shapeString = "" + _shapeChecker.CheckShapeType(_edgePoint);
                    int _x = (int)_center.X;
                    int _y = (int)_center.Y;
                    ///
                    /// Распознование объекта
                   
                    _g.DrawString(_shapeString, _font, _brush, _x, _y);
                    _g.DrawEllipse(_pen, (float)(_center.X - _radius),
                                         (float)(_center.Y - _radius),
                                         (float)(_radius * 2),
                                         (float)(_radius * 2));
 
                    //centroid point of object
                    int _centroid_X = (int)_blobPoints[0].CenterOfGravity.X;
                    int _centroid_Y = (int)_blobPoints[0].CenterOfGravity.Y;
                    _g.DrawEllipse(_pen, (float)(_centroid_X), (float)(_centroid_Y), (float)10, (float)10);
                    //Degree calculation
                    int _deg_x = _centroid_X - pictureBox1.Size.Width;
                    int _deg_y = pictureBox1.Size.Height - _centroid_Y;
                    textBox1.Text = ("Degree: (" + _deg_x + ", " + _deg_y + ")");
 
                    //size  rectange
                    foreach (Rectangle rc in _rects)
                    {
                       
                        //System.Diagnostics.Debug.WriteLine(
                        //    string.Format("Circle size: ({0}, {1})", rc.Width, rc.Height));
                        iFeatureWidth = rc.Width;
                        double dis = FindDistance(iFeatureWidth);
                        textBox2.Text = dis.ToString();
                        //_g.DrawString(dis.ToString("N2") + "cm", _font, _brush, _x, _y + 60);
                    }
                }
  • Вопрос задан
  • 99 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы