• 指针式仪表自动读数与识别(五):刻度线定位与拟合


    刻度拟合

    刻度在仪表自动读数中并不作为计算依据(起始和终止刻度除外),最终读数仅仅依赖指针、表盘位置以及量程,因此在求仪表刻度线时可以允许少量误差,这些误差不会对最终结果造成影响。

    对于刻度线的拟合,本质上还是对直线的拟合,因此常用的方法有最小二乘法和Hough变换拟合。我们通过多次轮廓筛选,然后计算轮廓外接矩形的中心,作为刻度点,刻度点与表盘圆心的连线作为刻度线。

    根据刻度线的特点,轮廓筛选包括对轮廓的形状、大小以及位置和角度进行筛选,满足以下条件的轮廓将被保留,否则被剔除:
    1.轮廓点个数n(或面积)在设定的范围内
    通过判断轮廓点的个数(或面积),可以初步过滤掉大面积的非刻度区域。
    2.轮廓点的最小外接矩形宽w、高h的比在设定的范围内
    根据刻度线的特点,刻度线的宽高比M一般在1:2-1:5之间,根据宽高比可以过滤掉相同面积的非刻度轮廓。
    3.轮廓的位置在表盘圆周附近
    通过圆检测定位到表盘后,判断轮廓中心(x_0,y_0)与表盘圆O(a,b,r)圆心的距离d,可以过滤掉面积以及宽高比相近的轮廓。
    4.轮廓最小外接矩形的方向指向圆心
    根据刻度线的特点,刻度线总是指向表盘圆心,因此,根据其最小外接矩形的倾斜角度α,判断是否是指向表盘圆心,达到最终的过滤目的。

    以下是过滤后的结果:

    刻度补全

    通过上图可以看出,直接过滤后的刻度是不完整的,所以需要对刻度进行补全,思路是:对每相邻两个刻度与圆心所成夹角进行投票,在误差范围内,得票最高者即为实际相邻刻度间的夹角,然后进行刻度线的拟合和重绘。具体步骤如下:
    (1) 计算刻度轮廓的最小包围矩形;
    (2) 计算最小外接矩形的中心;
    (3) 计

  • 相关阅读:
    LintCode "Maximum Gap"
    LintCode "Wood Cut"
    LintCode "Expression Evaluation"
    LintCode "Find Peak Element II"
    LintCode "Remove Node in Binary Search Tree"
    LintCode "Delete Digits"
    LintCode "Binary Representation"
    LeetCode "Game of Life"
    LintCode "Coins in a Line"
    LintCode "Word Break"
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286599.html
Copyright © 2020-2023  润新知