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); } } }
private void Find(ColorObjectCV colorObject) { // First binarize by color selection Binarize(colorObject); // Find the contours into binarize texture FindContoursBy(colorObject); }
private void Binarize(ColorObjectCV colorObject) { bin = hsv.InRange(colorObject.HsvLowerBound, colorObject.HsvUpperBound); }