• 指针式仪表自动读数与识别(四):非圆形表盘定位


    基于RSCD的非圆形表盘定位

    非圆形表盘外观一般为方形,常见于电流表和电压表。这些仪表没有明显的圆形表盘,因此无法通过直接Hough圆检测来定位表盘圆。观察仪表特点,可以发现虽然表盘不是圆形,但是表盘上的刻度均在同一个圆弧上,所以可以通过刻度线所在圆弧来确定圆弧所在圆的圆心和半径。检测方法可以使用Hough变换和RSCD。
    理论上,Hough变换可以检测任意形状的目标,所以也可以检测圆弧,但是由于圆弧特征不明显,没有足够多的特征点来确定圆心,故选择RSCD来进行圆弧检测。
    基于RSCD检测圆弧的主要步骤如下:
    (1) 预处理图像
    对图像进行预处理操作,这些操作包括:缩放图像减小运算量、灰度化图像、中值滤波去除较验噪声、高斯滤波平滑图像等。
    (2) 计算图像纵向梯度
    由于圆弧特征不明显,易受其他线条的干扰,且考虑到仪表方向一般为向上,因此,通过计算图像的纵向梯度来减小或消除噪声影响,提高圆弧特征在图像中的权重。
    (3) 二值化
    对纵向梯度图像进行二值化操作。
    (4) 轮廓提取
    对二值化后的图像提取轮廓,这些轮廓数据将用于计算刻度圆弧所在圆。
    (5) RSCD还原圆弧所在圆
    由于RSCD是随机的从轮廓上选取三个点来作为一个可能圆,并通过一个密度区域来确定圆心,所以,圆弧的断裂、少许错位并不影响最终定位结果(在人眼误差范围内)。

    下图是非圆形表盘定位的过程:

    使用刻度进行定位

    由于非圆形表盘的刻度仍然为圆形,所以,根据三点确定一个圆的原理,可以先找出刻度,再根据刻度必定在一个圆上来确定表盘。主要步骤如下:

    1.定位刻度线

    2.根据三点定圆,多次随机选取刻度轮廓上的三个

  • 相关阅读:
    vue @click.native和@click.stop和@click.self
    CSS改变图片颜色的filter(滤镜)属性
    iframe自适应内容高度
    python将两个列表对应成为字典
    Scrapy307重定向
    scrapy- invalid hostname: 'http'
    tensorflow2.0常用操作记录
    深度学习之Xavier初始化
    win10上tensorflow-gpu2.0安装完全指南
    如何使用Ubuntu/Linux系统远程连接Windows桌面
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286600.html
Copyright © 2020-2023  润新知