private static IList <PointF> findContour(Gray <byte>[,] templateImg)
        {
            var contour = templateImg.FindContour(minGradientStrength: 150).Select(x => (PointF)x).ToList();

            /*********** cut bottom border and shift contour beginning to the first non-border point ***************/
            int firstIdx = -1;
            int lastIdx  = -1;

            for (int i = 0; i < contour.Count; i++)
            {
                if (contour[i].Y == (templateImg.Height() - 1))
                {
                    if (firstIdx == -1)
                    {
                        firstIdx = i;
                    }
                    lastIdx = i;
                }
            }

            //return contour;
            return(new CircularList <PointF>(contour).GetRange(lastIdx, contour.Count - (lastIdx - firstIdx + 1)));
        }