本文主要是介绍指针式仪表自动读数与识别(七):示数计算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
序
经过前面的几篇文章,已经定位到了表盘和指针,那么最后一步就是计算读数了,读数的计算实际上很简单,就是利用夹角和量程算个比例,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),
这篇关于指针式仪表自动读数与识别(七):示数计算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!