指针式仪表的表盘自动识别算法

简介: 指针式仪表的表盘自动识别算法

一、算法简介


    指针式仪表的自动识别算法主要采用图像分割方法和鲁棒估计方法。指针式仪表在成像过程中受到光照不均、图像模糊、以及表盘表面与成像平面的偏斜等因素的影响,该算法主要包括几个方面的内容:


(1) 利用自适应分割方法进行初始分割,它可以消除光照不均的影响,其缺点是容易丢失刻度线;


(2) 统计图像的区域性质,利消除刻度以外的连通体,并计算各个连通体的中心;


(3) 利用RANSA方法估计表盘的圆心和半径,它可以非刻度连通体的干扰;


(4) 利用双线性插值方法把刻度所在的圆环图像变换为一个矩形图像,它可以进一步消除其他连通体的干扰,并且提取所有刻度线连通体;


(5) 利用自适应阈值方法对矩形图像进行分割;


(6) 重新利用RANSAC方法估计表盘的圆心和半径;


(7) 利用线性插值方法重新生成一个矩形图像,并利用它估计指针的大致方向;


(8) 剪切指针的尾部图像,并采用自适应阈值方法进行分割;然后利用指针的大致方向设计线状结构元,并对图像进行开运算,以消除其他因素的干扰;最后估计指针的精确位置及方向;


(9) 根据圆的参数和指针的参数自动识别表盘的读数;


    实际的实验结果表明,该方案能够有效地处理各种仪表的图像,并且具有较高的识别精度。下面分别对这些步骤进行详细的介绍。



二、基本步骤


该部分详细介绍指针式仪表的详细步骤,对其中的一些问题进行分析,并提出相应的解决方案。


1、初始分割


(1)图像预处理——高斯平滑


    为了消除噪声的干扰,首先对图像进行高斯平滑

image.png


自适应阈值方法


    根据局部统计特征,针对每个像素点计算分割阈值。由于刻度线是比较细的短线,该方法能够有效地处理光照不均的情况。


2、图像区域性质统计


    统计各个连通体的性质,包括面积、实心率等等,利用这些统计参数可以有效地消除不规则连通体的影响。但是由于实心率等参数计算量太大,所以本文仅利用面积作为特征,消除面积较大或较小的连通体。即使留下一些其他的干扰,如指针、数字等,由于后面采用了鲁棒估计方法,仍然能够精确地估计出圆心和半径。


3、估计表盘的圆心和半径


    计算各个连通体的中心,并利用RANSAC方法估计圆心和半径。该方法把所有中心点分为两类,即刻度连通体的中心点和非刻度连通体的中心点,并利用所有刻度连通体的中心计算圆心和半径,从而消除了非刻度连通体中心点的影响。由于RANSAC方法有坚实的理论基础,该方法能够取得比较好的效果,实际的应用也说明了这一点。


image.png

4、生成矩形图像


    利用双线性插值方法把刻度所在的圆环图像变换为一个矩形图像,它可以消除其他连通体的干扰。


image.png

image.png


5、矩形图像分割


    由于刻度线都是竖直向上,可以利用灰度闭运算消除背景光照的影响,即:用原始图像减去经过水平方向闭运算的图像,即可消除光照不均的影响。


im=(im-imclose(im,ones(1,9)));


image.png


新估计圆的参数


    重新利用RANSAC方法估计表盘的圆心和半径,由于利用了所有刻度线的信息,可以取得较好的精度。


image.png


7、估计指针方向


    利用线性插值方法重新生成一个矩形图像,并利用它估计指针的大致方向。


image.png


列方向进行求和,可以得到一个一维曲线,求其最小值点即对应指针的位置。


image.png


8、剪切指针图像,


    剪切指针的尾部图像,并采用自适应阈值方法分割,然后用一个线状的形态学滤波算子消除干扰,并估计指针的精确位置及方向。

image.png


估计表盘的读数


    根据圆的参数和指针的参数自动识别表盘的读数。该方法根据指针和圆周的交点,找出距离交点最近的两个刻度线的中心位置,并利用线性插值的方法计算指针的读数。

image.png



相关文章
|
1月前
|
算法 容器
双指针算法(一)
双指针算法(一)
|
1月前
|
算法
双指针算法(acwing)疑难讲解
双指针算法(acwing)疑难讲解
21 0
|
6天前
|
算法
双指针算法
双指针算法
8 2
|
21天前
|
机器学习/深度学习 搜索推荐 算法
【再识C进阶2(下)】详细介绍指针的进阶——利用冒泡排序算法模拟实现qsort函数,以及一下习题和指针笔试题
【再识C进阶2(下)】详细介绍指针的进阶——利用冒泡排序算法模拟实现qsort函数,以及一下习题和指针笔试题
|
1月前
|
机器学习/深度学习 计算机视觉
LabVIEW开发自动读取指针式仪表测试系统
LabVIEW开发自动读取指针式仪表测试系统
30 7
|
1月前
|
算法
|
1月前
|
算法 C++
双指针算法·两数之和·三数之和
双指针算法·两数之和·三数之和
14 0
|
8月前
|
缓存 算法 安全
类与对象知识总结+封闭类+const+this指针 C++程序设计与算法笔记总结(三) 北京大学 郭炜(下)
类与对象知识总结+封闭类+const+this指针 C++程序设计与算法笔记总结(三) 北京大学 郭炜(下)
29 0
|
1月前
|
算法
我对双指针算法认知
我对双指针算法认知
|
1月前
|
算法
双指针算法(二)
双指针算法(二)
双指针算法(二)