基于图像处理的指针式仪表示数自动判读算法研究
摘要:本文为了获取指针式仪表的示数,研究了基于图像处理的示数自动判读算法。根据采集到的仪表示数图像,首先采用预处理增强、降采样及二值化、旋转投影指针的方法提取出指针所在的区域;然后选取备选区域并进行二值化处理,在备选区域中定位了针尖的位置;最后对刻度线进行标记和排序,完成了示数判读。结果表明,测量的214幅图像中,误差小于仪表最小分度值5%的读数占85.05%。
本文引用地址:http://www.amcfsurvey.com/article/274754.htm引言
指针式仪表在工业生产中得到了广泛应用,如何快速准确读取仪表的示数是人们关心的问题。使用机械设备进行读数是一种方便、准确的方法,与之配套使用的图像处理和示数自动判读算法是整套设备的核心。国内外很多学者研究了指针式仪表示数自动判读算法[1-3] ,但研究仍存在一些不足,如:算法不具有普遍性、没有考虑光线等干扰对判读结果的影响。因此,本文以某公司使用的指针式压力仪表为对象,研究了示数自动判读算法。
1 指针区域提取
1.1 预处理增强
本文使用一台CCD相机获取仪表读数的图像,由于光线较差时会导致图像灰暗,因此需要增强灰度值偏低的图像,步骤为:
(1)计算原图像整体平均灰度值M。
(2)如果M<Mth,则对图像进行幂次变换,th代表阙值。变换方法是:y =xr,其中x 、y 分别是归一化后原灰度值和增强后的灰度值。取Mth=125,r =0.4。
以某仪表为例,增强效果如图1所示,将图1(b)的图像定义为I。
由于CCD相机采集到的原图像尺寸较大,采用经过8倍降采样的金字塔第3级图像[4]进行图像降采样。定义降采样后的图像为Ilow,计算其灰度均值为Mlow,设置其阙值Thlow=0.6Mlow。使用全局二值化[5]方法进行二值化,低于阙值的像素点在二值图像中赋值为1,得到的二值图像记为BWlow。对于BWlow,首先去除与图像边界连接的连通域,同时将二值图中间的部分设置为感兴趣区域(ROI),然后分别计算剩余连通域的长度,如果该长度低于某一阙值,则将其剔除。根据该思想,与图1(b)对应的降采样后的图像Ilow如图2(a)所示,与Ilow对应的连通域分析结果如图2(b)所示。
1.3 旋转投影提取指针
基于图2(b),得到指针所在区域的步骤为:
(1)将图像左上角设置为原点(0, 0),将图像BWlow绕其中心点C0(wl/2, hl/2)依次逆时针旋转i (1°≤i≤180°)。
(2)旋转后将BWr竖直投影,记录投影曲线的最大值mi和最大投影点的横坐标xi。
(3)根据所有mi绘制全局投影曲线Lp,找到Lp的最大值点m*=max(mi)以及取得该最大值时的旋转角度i*和对应的横坐标x*。
由于指针区域是长条状,因此只要得出其中一点的坐标,并对宽度加以约束,就可以得到包含指针的区域信息。指针区域关键坐标点P相对于C0的坐标为:
(1)
在以C0为中心的坐标系中,通过P且与指针区域指向平行的直线斜率k和截距b是:
(2)
确定直线方程后加入距离约束d,同时构造与图像Ilow大小一致的模板图像Im,Im与此直线距离小于d的像素点设置为感兴趣点,所有感兴趣点构成了包含指针的条状区域。根据降采样的比例因子,将Im放大至原始尺寸,与原图像I相乘,可以得出包含指针的条状区域图像Ip,如图3所示。
2 针尖区域提取及定位
2.1 备选区域提取
采用竖直的边缘提取算子提取指针的边缘信息,提取出竖直边缘特征后用Otsu二值化得到竖直边缘的二值图像,通过水平投影分析找到投影曲线的最大非零区间,可以确定图像Ip的旋转图像上指针两端的粗略坐标,进而变换到Ip中,得到指针两端的坐标。
的水平投影中最大的非零区间对应指针,从该区间的端点向曲线两侧搜索,若发现新的非零区间满足该区间与最大非零区间的间隔小于阙值ETh,则将该新区间并入最大非零区间。本文ETh=h'/30,设图像的尺寸是h'×w',H是旋转图像的高度。设在中,指针两端点的坐标是,和是上述最大非零区间两端点的坐标,是第行最左端非零点与最右端非零点的横坐标均值,的含义类似。粗略标记了指针两端在和中的位置。设原图像尺寸为h×w,将这两点的坐标变换到图像Ip中,得到在原图I中指针两端点的粗略坐标:
(3)
评论