序
经过前面的几篇文章,已经定位到了表盘和指针,那么最后一步就是计算读数了,读数的计算实际上很简单,就是利用夹角和量程算个比例,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)与圆心相连的线段作为指针,故β的计算方式变为:
最终的读数效果在下一篇文章会体现出来。