
部分代码如下
更新监控坐标();
Mat roi = frame[识别区域];
Mat hsv=new Mat();
Mat 二值图 = new Mat();
Mat 闭运算=new Mat();
Mat 结构 ;
Cv2.CvtColor(roi,hsv,ColorConversionCodes.BGR2HSV);
Cv2.InRange(hsv, hsvlower, hsvupper, 二值图);
OpenCvSharp.Size s = new OpenCvSharp.Size(6,6);
结构 = Cv2.GetStructuringElement(MorphShapes.Rect, s);
Cv2.MorphologyEx(二值图,闭运算, MorphTypes.Close, 结构,null,2);
OpenCvSharp.Point 茶面左边 = new OpenCvSharp.Point();
OpenCvSharp.Point 茶面右边 = new OpenCvSharp.Point();
Scalar color = new Scalar(255, 0, 255);
OpenCvSharp.Point 线起点, 线终点;
if (判断刻度(闭运算,ref 茶面左边,ref 茶面右边))
{
茶高度 = roi.Height - 茶面左边.Y;
线起点 = new OpenCvSharp.Point(识别区域.X + 茶面左边.X, 识别区域.Y + 茶面左边.Y);
线终点 = new OpenCvSharp.Point(识别区域.X + 茶面右边.X+20, 识别区域.Y + 茶面右边.Y);
Cv2.Line(frame, 线起点, 线终点, color, 2);
Cv2.PutText(frame, 茶高度.ToString(), 线终点,HersheyFonts.HersheySimplex,0.5,color,2);
textBox1.Text = 茶高度.ToString();
}
Cv2.Rectangle(frame, 识别区域,color,1);