【C# Opencv机器视觉】 Opencv水位检测、液体高度检测、卡尺高度检测
·

//安装OpencvSharp4
部分代码如下
更新监控坐标();
Mat roi = frame[识别区域];
Mat hsv=new Mat();
Mat 二值图 = new Mat();
Mat 闭运算=new Mat();
Mat 结构 ;
//转为hsv
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);
更多推荐

所有评论(0)