zoukankan      html  css  js  c++  java
  • 指针式仪表自动读数与识别(七):示数计算

    经过前面的几篇文章,已经定位到了表盘和指针,那么最后一步就是计算读数了,读数的计算实际上很简单,就是利用夹角和量程算个比例,so easy。

    起始/终止刻度的确定

    仪表的最终读数,取决于表盘圆心、指针偏移其实刻度的角度以及量程。在确定表盘圆心、指针方向以及量程后,才可以通过指针偏移角度来计算示数。那这里很重要的一点就是计算起始/终止刻度的位置。

    起始/终止刻度的确定可以先使用刻度拟合法来找出刻度,再根据刻度的位置关系来确定起始/终止刻度,但是由于受旋转,噪声等影响,定位结果往往差强人意,而最终读数又与起始坐标密切相关,所以为了保证其精度,我采用手动定位的方式来标记起始和终止刻度。当然是做个放大镜先放大局部图像在标记哈,这样更准确一点。

    计算方法

    在有了起始刻度,量程、圆心以及指针后,就可以计算读数了。

    计算公式如下:

    其中α为刻度起点和终点与圆心所成的夹角,β为指针偏移刻度起点的角度,R为量程,α和β的计算方式如下:
    设检测到的圆心为O(a,b,r),指针L的两个端点分别P_1 (x_1,y_1 )和P_2 (x_2,y_2),起始刻度和终止刻度位置分别为为P_s (x_s,y_s ),P_e (x_e,y_e),则:

    为了减小直线检测时出现的误差导致指针偏移角度计算不准确,将检测出的指针线段的远离圆心端(P_2)与圆心相连的线段作为指针,故β的计算方式变为:

    最终的读数效果在下一篇文章会体现出来。

  • 相关阅读:
    html页面模板布局内容的继承,block
    url分发
    显示年月,注册页面和后台数据交互,不涉及数据库
    static文件夹中文件引用方式,如html页面引用js
    pycharm写django之返回一个页面
    pycharm编写django第一步
    VUE清除keepalive页面缓存
    js设置html根节点的style字体【Vue动态调整全局字体大小】
    npm 依赖重新安装或更新版本
    antd 自定义表头slots.title不生效
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286597.html
Copyright © 2011-2022 走看看