一、算法简介
指针式仪表的自动识别算法主要采用图像分割方法和鲁棒估计方法。指针式仪表在成像过程中受到光照不均、图像模糊、以及表盘表面与成像平面的偏斜等因素的影响,该算法主要包括几个方面的内容:
(1) 利用自适应分割方法进行初始分割,它可以消除光照不均的影响,其缺点是容易丢失刻度线;
(2) 统计图像的区域性质,利消除刻度以外的连通体,并计算各个连通体的中心;
(3) 利用RANSA方法估计表盘的圆心和半径,它可以非刻度连通体的干扰;
(4) 利用双线性插值方法把刻度所在的圆环图像变换为一个矩形图像,它可以进一步消除其他连通体的干扰,并且提取所有刻度线连通体;
(5) 利用自适应阈值方法对矩形图像进行分割;
(6) 重新利用RANSAC方法估计表盘的圆心和半径;
(7) 利用线性插值方法重新生成一个矩形图像,并利用它估计指针的大致方向;
(8) 剪切指针的尾部图像,并采用自适应阈值方法进行分割;然后利用指针的大致方向设计线状结构元,并对图像进行开运算,以消除其他因素的干扰;最后估计指针的精确位置及方向;
(9) 根据圆的参数和指针的参数自动识别表盘的读数;
实际的实验结果表明,该方案能够有效地处理各种仪表的图像,并且具有较高的识别精度。下面分别对这些步骤进行详细的介绍。
二、基本步骤
该部分详细介绍指针式仪表的详细步骤,对其中的一些问题进行分析,并提出相应的解决方案。
1、初始分割
(1)图像预处理——高斯平滑
为了消除噪声的干扰,首先对图像进行高斯平滑
自适应阈值方法
根据局部统计特征,针对每个像素点计算分割阈值。由于刻度线是比较细的短线,该方法能够有效地处理光照不均的情况。
2、图像区域性质统计
统计各个连通体的性质,包括面积、实心率等等,利用这些统计参数可以有效地消除不规则连通体的影响。但是由于实心率等参数计算量太大,所以本文仅利用面积作为特征,消除面积较大或较小的连通体。即使留下一些其他的干扰,如指针、数字等,由于后面采用了鲁棒估计方法,仍然能够精确地估计出圆心和半径。
3、估计表盘的圆心和半径
计算各个连通体的中心,并利用RANSAC方法估计圆心和半径。该方法把所有中心点分为两类,即刻度连通体的中心点和非刻度连通体的中心点,并利用所有刻度连通体的中心计算圆心和半径,从而消除了非刻度连通体中心点的影响。由于RANSAC方法有坚实的理论基础,该方法能够取得比较好的效果,实际的应用也说明了这一点。
4、生成矩形图像
利用双线性插值方法把刻度所在的圆环图像变换为一个矩形图像,它可以消除其他连通体的干扰。
5、矩形图像分割
由于刻度线都是竖直向上,可以利用灰度闭运算消除背景光照的影响,即:用原始图像减去经过水平方向闭运算的图像,即可消除光照不均的影响。
im=(im-imclose(im,ones(1,9)));
新估计圆的参数
重新利用RANSAC方法估计表盘的圆心和半径,由于利用了所有刻度线的信息,可以取得较好的精度。
7、估计指针方向
利用线性插值方法重新生成一个矩形图像,并利用它估计指针的大致方向。
列方向进行求和,可以得到一个一维曲线,求其最小值点即对应指针的位置。
8、剪切指针图像,
剪切指针的尾部图像,并采用自适应阈值方法分割,然后用一个线状的形态学滤波算子消除干扰,并估计指针的精确位置及方向。
估计表盘的读数
根据圆的参数和指针的参数自动识别表盘的读数。该方法根据指针和圆周的交点,找出距离交点最近的两个刻度线的中心位置,并利用线性插值的方法计算指针的读数。