FrameProcessor.refine_center C# (CSharp) Method

refine_center() private method

private refine_center ( Point last_center, Byte>.Image img ) : Point[]
last_center Point
img Byte>.Image
return Point[]
    private Point[] refine_center(Point[] last_center, Image<Gray, Byte> img)
    {
        Point[] center = last_center.Clone() as Point[];
        for (int iter = 0; iter < 3; iter++)
        {
            for (int i = 0; i < 2; i++)
            {
                Rectangle ROI = new Rectangle(Math.Max(center[i].X - 50,0),Math.Max( center[i].Y - 50,0),Math.Min(center[i].X+50,img.Width),Math.Min(center[i].Y+50,img.Height));
                ROI.Width -= ROI.X;
                ROI.Height -= ROI.Y;
                try
                {
                    Emgu.CV.CvInvoke.cvSetImageROI(img, ROI);
                    if (img.GetMoments(false).GravityCenter.x > 0)
                    {
                        center[i].X = ROI.X + (int)img.GetMoments(false).GravityCenter.x;
                        center[i].Y = ROI.Y + (int)img.GetMoments(false).GravityCenter.y;
                    }
                }
                catch { }
                Emgu.CV.CvInvoke.cvResetImageROI(img);
            }
        }
        return center;
    }