Может кто-нибудь объяснить мне, как правильно преобразовать кадр в 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());
}