EmguCV 4.3.0 Обнаружение цветового круга - PullRequest
0 голосов
/ 03 августа 2020

Может кто-нибудь объяснить мне, как правильно преобразовать кадр в HSV и определить оранжевый или другой цветовой круг? Я могу обнаружить только круг.

Mat currentFrame = capture.QueryFrame();

if (currentFrame == null)
return;

using (UMat gray = new UMat())
{
   CvInvoke.CvtColor(currentFrame, gray, ColorConversion.Bgr2Gray);
   CvInvoke.GaussianBlur(gray, gray, new Size(3, 3), 1);

   #region circle detection
   double cannyThreshold = 180.0;
   double circleAccumulatorThreshold = 120;
   CircleF[] circles = CvInvoke.HoughCircles(gray, HoughModes.Gradient, 2.0, 20.0, cannyThreshold,
      circleAccumulatorThreshold, 5);
   #endregion

   #region draw circles
   if (circles.Length > 0)
   {
      CvInvoke.Circle(currentFrame, tempPoint, (int) circles[0].Radius,
      new Bgr(System.Drawing.Color.Brown).MCvScalar, 2);
   }
   #endregion
   SourceImage = Convert(currentFrame.ToBitmap());
}
...