Ejemplo n.º 1
0
    private void FindContoursBy(ColorObjectCV colorObject)
    {
        List <Point[]> corners = new List <Point[]>();

        HierarchyIndex[] h;

        bin.FindContours(out var contours, out h, RetrievalModes.External, ContourApproximationModes.ApproxSimple);
        double maxArea = 0;

        for (int i = 0; i < contours.Length; i++)
        {
            double area = Cv2.ContourArea(contours[i]);
            if (area > maxArea)
            {
                maxArea = area;
                corners.Add(contours[i]);
            }
        }

        if (corners.Count > 0)
        {
            for (int i = 0; i < corners.Count; i++)
            {
                bgr.DrawContours(corners, i, colorObject.ContourColor, 5);
            }
        }
    }
Ejemplo n.º 2
0
 private void Find(ColorObjectCV colorObject)
 {
     // First binarize by color selection
     Binarize(colorObject);
     // Find the contours into binarize texture
     FindContoursBy(colorObject);
 }
Ejemplo n.º 3
0
 private void Binarize(ColorObjectCV colorObject)
 {
     bin = hsv.InRange(colorObject.HsvLowerBound, colorObject.HsvUpperBound);
 }