【发布时间】:2021-07-29 04:49:17
【问题描述】:
我有一张图像,我需要计算其中的白点。我试过这段代码,但效果很差:
CircleSegment[] circles;
Mat dst = new Mat();
Mat train = new Mat(path, ImreadModes.Grayscale);
Cv2.GaussianBlur(train, dst, new OpenCvSharp.Size(1, 1), 4, 550);
circles = Cv2.HoughCircles(dst, HoughMethods.Gradient, 5, 50, 1, 60, 1, 60);
for (int i = 0; i < circles.Length; i++)
{
count++;
Cv2.Circle(dst, (OpenCvSharp.Point)circles[i].Center, (int)circles[i].Radius, new Scalar(125), 2);
}
using (new Window("Circles", dst))
{
Cv2.WaitKey();
}
MessageBox.Show(count.ToString(), "Result", MessageBoxButtons.OK);
我附上原图,结果:
【问题讨论】:
-
我认为问题是你的圆圈不是完美的圆圈,你可能需要使用其他工具
-
尝试使用计数检测器