【OpenCv/EmguCv】指针式仪表读数(二)
2017-11-16 14:38
288 查看
1. 计算偏移角度
计算三个点的夹角:以仪表圆心为中心,指针的一个端点和参考点为另外两个点计算三个点所组成的两条线段的夹角αpublic double Angle(Point cen, Point first, Point second) { const double M_PI = 3.1415926535897; double ma_x = first.X - cen.X; double ma_y = first.Y - cen.Y; double mb_x = second.X - cen.X; double mb_y = second.Y - cen.Y; double v1 = (ma_x * mb_x) + (ma_y * mb_y); double ma_val = Math.Sqrt(ma_x * ma_x + ma_y * ma_y); double mb_val = Math.Sqrt(mb_x * mb_x + mb_y * mb_y); double cosM = v1 / (ma_val * mb_val); double angleAMB = Math.Acos(cosM) * 180 / M_PI; return angleAMB; }
2. 计算示数
value = max*α/360(0<α<180);value = max*(360-α)/360(180<α<360);
private double getValue() { double angle = Angle(center, new Point(center.X, 0), p); if (p.X < center.X) { angle = 360 - angle; } return ((angle/360)*60; }
相关文章推荐
- 【OpenCv/EmguCv】指针式仪表读数(一)
- VS2010平台下的OpenCV、EmguCV( C#)安装、使用配置
- OpenCV仪表数据识别(二):数字区域自动定位
- OpenCV(EmguCV)2.1新特性介绍之图像差异StereoSGBM与设置窗口属性SetWindowProperty(StereoSGBM Of OpenCV 2.1)
- Emgucv传递Image类参数给Opencv的Mat类
- VS2010平台下的OpenCV、EmguCV( C#)安装、使用配置
- EmguCV(OpenCV)实现高效显示视频(YUV)叠加包括汉字
- EmguCV学习 与opencv的区别和联系
- C#下的OpenCv----EmguCV入门
- 摄像机标定研究(Matlab+opencv+emgucv)
- 【OpenCV】EmguCV颜色识别案例
- OpenCv,EmguCv及.net之间的互动(The Interaction of OpenCv, EmguCv AND .net)
- 使用emguCV/C# opencv绘制自定义直方图
- 【OpenCV】EmguCV手势识别(0,1,2,3,4,5)
- [转载]OpenCV(EmguCV)2.1新特性介绍之图像分割GrabCut(GrabCut Of OpenCV 2.1)
- OpenCV与EmguCV中的图像轮廓提取
- opencv emgucv 分类器无法初始化 CV.CvInvoke threw an exception
- 转:OpenCv,EmguCv及.net之间的互动
- 【OpenCV】OpenCV中的结构体、类与EmguCV的对应表
- Unity3d 中配置OpenCV(EmguCV) 环境