, OpenCv AForge (, AForge , OpenCv ).
# OpenCvSharp nuget. , ++ python, .
, OpenCv blob, blob, , , blob ( ).
, OpenCv , - ( ), findContours, Hull. , , :
using (var src = new Mat(filePath))
using (var gray = new Mat())
{
using (var bw = src.CvtColor(ColorConversionCodes.BGR2GRAY))
{
Cv2.BitwiseNot(bw, gray);
}
var contours = gray.FindContoursAsArray(RetrievalModes.List, ContourApproximationModes.ApproxSimple);
using (var dst = src.Clone())
{
foreach (var contour in contours)
{
var area = Cv2.ContourArea(contour);
if (area < 15 * 15)
continue;
if (Math.Abs((area - (src.Width * src.Height)) / area) < 0.01f)
continue;
var hull = Cv2.ConvexHull(contour);
Cv2.Polylines(dst, new[] { hull }, true, Scalar.Red, 2);
}
using (new Window("src image", src))
using (new Window("dst image", dst))
{
Cv2.WaitKey();
}
}
}
