zoukankan      html  css  js  c++  java
  • 指针式仪表自动读数与识别(五):刻度线定位与拟合

    刻度拟合

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

    对于刻度线的拟合,本质上还是对直线的拟合,因此常用的方法有最小二乘法和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) 计

  • 相关阅读:
    python的复制,深拷贝和浅拷贝的区别(转)
    linux下ffmpeg安装(转)
    Linux下的tar压缩解压缩命令详解(转)
    centos7安装python-pip(转)
    爬山算法和模拟退火算法简介
    协方差、协方差矩阵定义与计算
    七种常见阈值分割代码(Otsu、最大熵、迭代法、自适应阀值、手动、迭代法、基本全局阈值法)
    Canny边缘检测算法原理及其VC实现详解(二)
    Canny边缘检测算法原理及其VC实现详解(一)
    perforce变量配置与使用
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286599.html
Copyright © 2011-2022 走看看