基于MATLAB的压力表状态快速识别方法
2021-07-01刘世兵张路路
刘世兵,张路路,马 壮
(山东工商学院 信息与电子工程学院,山东 烟台 264003)
0 引 言
灭火器压力表是反应其内部充装状态的仪表,在诸多部门和行业特别是危险品存放区域,需要实时监控灭火器状态,确保正常充装避免意外。传统人工肉眼识别受到太多人为因素的影响,容易产生误差,存在可靠性差等隐患。特别是在许多需要对仪表进行长期、持续识别的场合,由于长期工作引起视觉疲劳,将不可避免导致读取误差的产生,且肉眼识别也存在效率低下等缺点。随着图像处理技术的发展,由摄像头代替人眼对仪表图像进行采集,继而利用数字图像处理技术对图像进行处理,这种识别仪表示数的方法越来越受到人们的重视[1-2]。
灭火器压力表多采用指针和圆形表盘结构,目前,基于数字图像处理技术的指针式仪表自动识别方法多针对读数型仪表。戴亚文等于2003年提出基于图像识别的复杂仪表读数识别[3];李治玮等于2007年提出新型指针仪表识别研究,误差可以达到0.027 A[1];李祖贺等实现了指针式压力表自动读数的同时进行校验的功能[4]。然而,多数传统压力表仍使用红、绿、黄三色表示不同的区域,各种颜色之间使用黑线分开,指针颜色为黄褐色,导致图像识别时背景区分度不高。同时,受环境光照强弱等因素影响,摄像头拍摄的图像也会受到影响,以上问题均给压力表状态的图像识别造成了困难[5-7]。
鉴于此,本文对上述图像的特点进行分析,提出一种综合利用图像处理和识别方法在上述类型的压力表中提取和识别指针状态的方案,实践证明该算法准确性、健壮性、实时性良好。
1 基于图像灰度化对比法压力表识别方法
首先得到压力表无指针状态的初始图像,接着对图像运用灰度化求和法得到其灰度图像,并将此图像分割成3个区域,对其区域内的灰度化求和,最后作为参考图像存储在计算机内存中。在具体识别过程中,首先在同等条件下获得一个有指针的图像,使用与参考图像相同的处理方式进行预处理,最后通过对其灰度化和的比较得出指针状态。识别流程如图1所示。
图1 识别流程
本文设计的系统通过MATLAB命令行guide创建界面,完成窗口的创建后,系统会自动生成.m文件,通过对.m文件的编写实现相关功能[8-10]。
1.1 导入图像
本论文使用的压力表为白色表盘,黄褐色指针。对于区域进行预设定,分别为红色(在充装)、绿色(正常状态)、黄色(超充装)。将压力表盘固定后使用摄像头拍摄无指针图像作为参考图像,同时在相同状态下拍摄带有指针的照片作为实验测试图。
1.2 灰度化处理
在对图像进行灰度处理之前,需要将图片的像素调整一致(本论文将图片像素统一处理为240×320),然后再对图片进行灰度化处理。
图片灰度化处理通常使用的方法有浮点算法、移动方位法、平均值法、加权平均法等,文中选用MATLAB rgb2gray()函数。该函数是MATLAB内部处理图像的函数,消除图像色调和饱和度信息,同时保留亮度将RGB图像或彩色图转换为灰度图像,即灰度化处理。该函数使用加权平均算法按照一定的权值对原图像的RGB值进行加权平均处理:
式中,wR、wG、wB分别为R,G,B的权值。当wG>wR>wB时,会得到较容易识别的灰色图像,一般wR=0.299、wG=0.587、wB=0.114时得到的灰度图像效果最佳。灰度图像如图2所示。
图2 灰度图像
1.3 图像预处理
使用MATLAB contour()函数对灰度处理后的图片进行分析。contour(Z)函数创建一个包含矩阵Z等值线的等高线图,包含x-y平面上的高度值。通过对参考图片中的灰度图片进行分析后发现,在需要分割的3个区域内存在图像噪声,需滤除。本文使用的强制阈值去噪法通过遍历图像的灰度值将超过100的灰度值全部置255,即将其颜色变为白色。该方法操作简单,且得到的图像较为干净,同时对于图像中的重要信息损伤较小。
如图3所示,在未处理的图中存在很多图像噪声。图4是通过强制阈值去噪后的图像。通过对图3与图4的对比分析,得知该算法去噪效果较好。
图3 未处理图像
图4 处理后图像
1.4 图像分割和区域求和
灭火器压力表状态共分为3种,分别为红、绿、黄。其中,红色表示待充装状态;绿色表示正常状态;黄色表示超充装状态。根据3种状态的位置结合图像中的坐标将图像分为3个区域,同时对分割的区域进行灰度值求和。
预处理后的图像如图5所示,该图像尺寸为240×340,对图像分割出3个区域码,分别标记红、绿、黄,然后分别对这3个区域内的灰度值求和。
图5 图像分割图
1.5 RGY对比和指正位置识别
通过区域求和后,可以得到3个不同区域的灰度值的和,若指针不在该区域,则其灰度值不发生改变,一旦灰度值发生改变,则说明压力表的指针处于该区域,最终成功实现对压力表状态的识别。
2 实验及结果分析
为验证本方法的可行性,利用摄像头获取图像后使用该方法进行识别,共进行9次验证,每种状态识别3次,指针位置分别处于两边和中间,结果见表1所列。
表1中,R、G、Y为参考图的被分割位置的灰度值的和;R1、G1、B1为测试图的被分割位置的灰度值的和。由上述表格可以得出,指针由红色中间区域到黄色中间区域时,该方法识别准确度达100%,而靠近压力表左右两边的位置未被准确识别,原因是在分割区域时将压力表状态的两边区域未包括其中。
表1 测试数据
3 结 语
传统的压力表使用颜色表示状态,且这种型号的压力表目前在社会各领域被大量应用,尤其在消防领域,因此对其识别方法的研究具有重要的应用价值。本文使用白色表盘和黄褐色指针有效解决了图像识别中颜色区分度不高的问题,使用灰度值求和对比方法完成了对压力表指针状态的识别,该方法具有准确率高、简单、计算快速等优点。同目前应用于该领域的其他方法相比,具有较好的实用价值。
注:本文通讯作者为刘世兵。